From 96d88422373ffb32aef75157647e0575a0471c03 Mon Sep 17 00:00:00 2001 From: "Kurt B. Kaiser" Date: Tue, 17 Jul 2001 04:59:01 +0000 Subject: [PATCH] Implement idle command interface as suggested by GvR [idle-dev] 16 July **************** PyShell: Added functionality: usage: idle.py [-c command] [-d] [-i] [-r script] [-s] [-t title] [arg] ... idle file(s) (without options) edit the file(s) -c cmd run the command in a shell -d enable the debugger -i open an interactive shell -i file(s) open a shell and also an editor window for each file -r script run a file as a script in a shell -s run $IDLESTARTUP or $PYTHONSTARTUP before anything else -t title set title of shell window Remaining arguments are applied to the command (-c) or script (-r). ****************** idles: Removed the idles script, not needed ****************** idle: Removed the IdleConf references, not required anymore --- Lib/idlelib/PyShell.py | 41 +++++++++++++++++++++++++---------------- Lib/idlelib/idle | 10 +--------- Lib/idlelib/idles | 13 ------------- 3 files changed, 26 insertions(+), 38 deletions(-) delete mode 100755 Lib/idlelib/idles diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py index cab7328f12a..3fab3c21718 100644 --- a/Lib/idlelib/PyShell.py +++ b/Lib/idlelib/PyShell.py @@ -709,17 +709,19 @@ class PseudoFile: return 1 usage_msg = """\ -usage: idle.py [-c command] [-d] [-e] [-s] [-t title] [arg] ... +usage: idle.py [-c command] [-d] [-i] [-r script] [-s] [-t title] [arg] ... --c command run this command --d enable debugger --e edit mode; arguments are files to be edited --s run $IDLESTARTUP or $PYTHONSTARTUP before anything else --t title set title of shell window +idle file(s) (without options) edit the file(s) -When neither -c nor -e is used, and there are arguments, and the first -argument is not '-', the first argument is run as a script. Remaining -arguments are arguments to the script or to the command run by -c. +-c cmd run the command in a shell +-d enable the debugger +-i open an interactive shell +-i file(s) open a shell and also an editor window for each file +-r script run a file as a script in a shell +-s run $IDLESTARTUP or $PYTHONSTARTUP before anything else +-t title set title of shell window + +Remaining arguments are applied to the command (-c) or script (-r). """ class usageError: @@ -781,29 +783,34 @@ class main: cmd = None edit = 0 debug = 0 + interactive = 0 + script = None startup = 0 try: - opts, args = getopt.getopt(argv, "c:deist:") + opts, args = getopt.getopt(argv, "c:dir:st:") except getopt.error, msg: sys.stderr.write("Error: %s\n" % str(msg)) sys.stderr.write(usage_msg) sys.exit(2) for o, a in opts: - noshell = 0 + noshell = 0 # There are options, bring up a shell if o == '-c': cmd = a if o == '-d': debug = 1 - if o == '-e': - edit = 1 + if o == '-i': + interactive = 1 + if o == '-r': + script = a if o == '-s': startup = 1 if o == '-t': PyShell.shell_title = a if noshell: edit=1 + if interactive and args and args[0] != "-": edit = 1 for i in range(len(sys.path)): sys.path[i] = os.path.abspath(sys.path[i]) @@ -860,9 +867,11 @@ class main: shell.open_debugger() if cmd: interp.execsource(cmd) - elif not edit and args and args[0] != "-": - interp.execfile(args[0]) - + elif script: + if os.path.isfile(script): + interp.execfile(script) + else: + print "No script file: ", script shell.begin() self.idle() diff --git a/Lib/idlelib/idle b/Lib/idlelib/idle index 2a854978a5d..8638a165b4b 100755 --- a/Lib/idlelib/idle +++ b/Lib/idlelib/idle @@ -1,12 +1,4 @@ #! /usr/bin/env python -import os -import sys -from idlelib import IdleConf - -idle_dir = os.path.dirname(IdleConf.__file__) -IdleConf.load(idle_dir) - -# defer importing Pyshell until IdleConf is loaded -from idlelib import PyShell +import PyShell PyShell.main() diff --git a/Lib/idlelib/idles b/Lib/idlelib/idles deleted file mode 100755 index b2233b70779..00000000000 --- a/Lib/idlelib/idles +++ /dev/null @@ -1,13 +0,0 @@ -#! /usr/bin/env python - -import os -import sys -from idlelib import IdleConf - -idle_dir = os.path.dirname(IdleConf.__file__) -IdleConf.load(idle_dir) - -# defer importing Pyshell until IdleConf is loaded -from idlelib import PyShell -# open a shell instead of an editor window -PyShell.main(0)