On Jan 6, 2005, at 2:34 PM, A.M. Kuchling wrote: > Here's a small patch that causes 'durus -c' to find and execute the > file named by the DURUSSTARTUP env. var (by analogy with > PYTHONSTARTUP). Possibly the filename should be run through > os.path.expanduser() before opening it. > > It would be nice to have a way to add text to the help banner, but I > don't see a tidy way to do that with modifying Python's code.py, so > never mind. Here's a different implementation, with the help banner. --- client.py (revision 25822) +++ client.py (working copy) @@ -26,7 +26,8 @@ except ImportError: pass -def interactive_client(file, host, port, cache_size, readonly, repair): +def interactive_client(file, host, port, cache_size, readonly, repair, + startup): if file: storage = FileStorage(file, readonly=readonly, repair=repair) description = file @@ -45,6 +46,8 @@ 'pp': pprint} configure_readline(namespace, os.path.expanduser("~/.durushistory")) console = InteractiveConsole(namespace) + if startup: + console.runsource('execfile("%s")' % os.path.expanduser(startup)) help = (' connection -> the connection\n' ' root -> get(0)\n' ' get(oid) -> get an object\n' @@ -78,9 +81,16 @@ parser.add_option( '--readonly', dest='readonly', action='store_true', help='Open the file in read-only mode.') + parser.add_option( + '--startup', dest='startup', + default=os.environ.get('DURUSSTARTUP', ''), + help=('Full path to a python startup file to execute on startup.' + '(default=DURUSSTARTUP from environment, if set)') + ) (options, args) = parser.parse_args() interactive_client(options.file, options.host, options.port, - options.cache_size, options.readonly, options.repair) + options.cache_size, options.readonly, options.repair, + options.startup)