-#! /usr/local/bin/python -O
+#! /usr/bin/env python
+"""Dummy VFS for Midnight Commander. Just for a test."""
-"""
-Dummy VFS for Midnight Commander. Just for a test.
+__version__ = "1.0.3"
+__author__ = "Oleg Broytman <phd@phdru.name>"
+__copyright__ = "Copyright (C) 2004-2013 PhiloSoft Design"
+__license__ = "GPL"
-Author: Oleg BroytMann <phd@phd.pp.ru>.
-Copyright (C) 2004 PhiloSoft Design.
-License: GPL.
-
-"""
-
-__version__ = "0.0.1"
-__revision__ = "$Id: dummy,v 1.1 2004/06/12 22:14:57 phd Exp $"
-__date__ = "$Date: 2004/06/12 22:14:57 $"[7:-2]
-__author__ = "Oleg Broytmann <phd@phd.pp.ru>"
-__copyright__ = "Copyright (C) 2004 PhiloSoft Design"
import sys
sys.stderr.write(msg + '\n')
def error(msg):
- sys.stderr.write(msg + '\n')
+ log_error(msg + '\n')
sys.exit(1)
if len(sys.argv) < 2:
- error("Not enough arguments")
+ error("""\
+It is not a program - it is a dummy VFS for Midnight Commander.
+Put it in $HOME/.mc/extfs.d or /usr/lib/mc/extfs.""")
+
+
+def mcdummy_list():
+ """List the entire VFS"""
+ # Ignore the VFS name (sys.argv[2])
+ # Emit a dummy listing
+ print "-r--r--r-- 1 user group 0 Jun 13 02:20 file0"
+ print "-r--r--r-- 1 user group 1 Jun 13 02:21 file1"
+ print "dr--r--r-- 1 user group 2 Jun 13 02:22 subdir"
+ print "-r--r--r-- 1 user group 3 Jun 13 02:23 subdir/file3"
+ print "-r--r--r-- 1 user group 4 Jun 13 02:23 subdir/file4"
+
+
+def mcdummy_copyout():
+ """Extract a file from the VFS"""
+ # Ignore the VFS name (sys.argv[2])
+ dummy_filename = sys.argv[3]
+ real_filename = sys.argv[4]
+
+ real_file = open(real_filename, 'a')
+ real_file.write("Copy from %s\n" % dummy_filename)
+ real_file.write("Copy to %s\n" % real_filename)
+ real_file.close()
+
+
+def mcdummy_copyin():
+ """Put a file to the VFS"""
+ # Ignore the VFS name (sys.argv[2])
+ dummy_filename = sys.argv[3]
+ real_filename = sys.argv[4]
+
+ real_file = open(real_filename + "-dummy.tmp", 'a')
+ real_file.write("Copy from %s\n" % real_filename)
+ real_file.write("Copy to %s\n" % dummy_filename)
+ real_file.close()
+
+
+def mcdummy_rm():
+ """Remove a file from the VFS"""
+ # Ignore the VFS name (sys.argv[2])
+ dummy_filename = sys.argv[3]
+
+ real_file = open(".dummy.tmp", 'a')
+ real_file.write("Remove %s\n" % dummy_filename)
+ real_file.close()
+
+
+def mcdummy_mkdir():
+ """Create a directory in the VFS"""
+ # Ignore the VFS name (sys.argv[2])
+ dummy_dirname = sys.argv[3]
+
+ real_file = open(".dummy.tmp", 'a')
+ real_file.write("Create %s\n" % dummy_dirname)
+ real_file.close()
+
+
+def mcdummy_rmdir():
+ """Remove a directory from the VFS"""
+ # Ignore the VFS name (sys.argv[2])
+ dummy_dirname = sys.argv[3]
+
+ real_file = open(".dummy.tmp", 'a')
+ real_file.write("Remove %s\n" % dummy_dirname)
+ real_file.close()
+
+
+g = globals()
+command = sys.argv[1]
+procname = "mcdummy_" + command
+if not g.has_key(procname):
+ error("Unknown command %s" % command)
-cmd = sys.argv[1]
+g[procname]()