From 13aae6f996354cef980f341cb84a038d7d36c06b Mon Sep 17 00:00:00 2001 From: Dan Helfman Date: Sun, 22 Nov 2009 20:06:57 -0800 Subject: [PATCH] Converted to use optparse. Patch from Pete Burgers. --- NEWS | 3 ++- luminotes.py | 66 ++++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 61 insertions(+), 8 deletions(-) diff --git a/NEWS b/NEWS index 3665fbe..8e6aeb8 100644 --- a/NEWS +++ b/NEWS @@ -9,7 +9,8 @@ of Luminotes notebooks. These characters could show up when copy and pasted into another application. * New "-w" option to luminotes.py that prevents web browser from opening when - Luminotes Desktop is started. Patch from Pete Burgers. + Luminotes Desktop is started. Also added "--help" to show other available + options. Patches from Pete Burgers. 1.6.17: July 26, 2009 * Fixed a bug that caused ever-growing notes in Internet Explorer 8. diff --git a/luminotes.py b/luminotes.py index 7de54aa..25dd00c 100755 --- a/luminotes.py +++ b/luminotes.py @@ -6,6 +6,7 @@ import stat import socket import os.path import urllib2 as urllib +import optparse import cherrypy import webbrowser from controller.Database import Database @@ -32,16 +33,15 @@ def change_to_main_dir(): os.chdir( path ) -def main( args ): +def main( options ): change_to_main_dir() cherrypy.config.update( Common.settings ) - if args and "-d" in args: + if options.development: from config import Development settings = Development.settings - # sys.frozen is from py2exe - elif args and "-l" in args or hasattr( sys, "frozen" ): + elif options.desktop: from config import Desktop settings = Desktop.settings else: @@ -51,7 +51,7 @@ def main( args ): cherrypy.config.update( settings ) # Don't launch web browser if -w flag is set - if args and "-w" in args: + if options.no_webbrowser: launch_browser = False else: launch_browser = cherrypy.config.configMap[ u"global" ].get( u"luminotes.launch_browser" ) @@ -64,7 +64,7 @@ def main( args ): server_present = True # if requested, attempt to shutdown an existing server and exit - if args and "-k" in args: + if options.kill: try: urllib.urlopen( "%sshutdown" % server_url ) except urllib.URLError: @@ -146,4 +146,56 @@ def callback( log_access_file, log_file, server_url, port_filename, socket_port, if __name__ == "__main__": - main( sys.argv[ 1: ] ) + + # sys.frozen is from py2exe + desktop_default = hasattr( sys, "frozen" ) + + parser = optparse.OptionParser( + usage = "usage: %prog [OPTIONS]\n" + + " OR: %prog --help", + version = VERSION, + ) + + parser.add_option( + "-l", "--desktop", + dest = "desktop", + action = "store_true", + default = desktop_default, + help = "Run in Desktop mode %s" % + ( "(DEFAULT)" if desktop_default else "" ), + ) + + parser.add_option( + "-s", "--server", + dest = "desktop", + action = "store_false", + help = "Run in Server mode %s" % + ( "(DEFAULT)" if not desktop_default else "" ), + ) + + parser.add_option( + "-d", "--developement", + dest = "development", + action = "store_true", + help = "Run in Development mode", + ) + + parser.add_option( + "-k", "--kill", + dest = "kill", + action = "store_true", + help = "Attempt to shutdown existing server and exit", + ) + + parser.add_option( + "-w", "--no_webbrowser", + dest = "no_webbrowser", + action = "store_true", + help = "Don't autolaunch web browser in Desktop mode", + ) + + ( options, args ) = parser.parse_args() + if args != []: + parser.error( "Unrecognised options: %s" % " ".join( args ) ) + + main(options)