diff python/dmenu.py @ 290:03d62a2cbe62

update demnu to almost a real program
author Jeff Hammel <jhammel@mozilla.com>
date Fri, 10 May 2013 19:43:47 -0700
parents e1a861bbb559
children 8f92aa15406f
line wrap: on
line diff
--- a/python/dmenu.py	Fri May 10 14:25:29 2013 -0700
+++ b/python/dmenu.py	Fri May 10 19:43:47 2013 -0700
@@ -5,14 +5,19 @@
 import subprocess
 import sys
 
-def choose_file(directory, dmenu='dmenu'):
+def choose_file(directory, dmenu='dmenu',
+                args=('-i', '-nb', 'black', '-nf', 'white')):
     """choose a file in the directory with dmenu"""
     directory = os.path.abspath(directory)
     files = os.listdir(directory)
     string = '\n'.join(files)
 
+    if isinstance(dmenu, basestring):
+        dmenu = [dmenu]
+    dmenu = list(dmenu)
+    dmenu.extend(args)
 
-    process = subprocess.Popen([dmenu, '-i'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
+    process = subprocess.Popen(dmenu, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
     stdout, _ = process.communicate(input=string)
     if process.returncode:
         return
@@ -23,7 +28,19 @@
 
 def main(args=sys.argv[1:]):
     parser = optparse.OptionParser()
-    print choose_file(os.getcwd())
+    parser.add_option('-d', '--directory', dest='directory',
+                      default=os.getcwd(),
+                      help="call on this directory [Default: current directory]")
+    parser.add_option('-e', '--exec', dest='executable',
+                      help="call this proram with the result")
+    options, args = parser.parse_args(args)
+    chosen =  choose_file(options.directory)
+    if chosen:
+        if options.executable:
+            pass
+        print chosen
+    else:
+        sys.exit(1)
 
 if __name__ == '__main__':
     main()