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
This commit is contained in:
Kurt B. Kaiser 2001-07-17 04:59:01 +00:00
parent 0eb4f3e994
commit 96d8842237
3 changed files with 26 additions and 38 deletions

View file

@ -709,17 +709,19 @@ class PseudoFile:
return 1 return 1
usage_msg = """\ 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 idle file(s) (without options) edit the file(s)
-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
When neither -c nor -e is used, and there are arguments, and the first -c cmd run the command in a shell
argument is not '-', the first argument is run as a script. Remaining -d enable the debugger
arguments are arguments to the script or to the command run by -c. -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: class usageError:
@ -781,29 +783,34 @@ class main:
cmd = None cmd = None
edit = 0 edit = 0
debug = 0 debug = 0
interactive = 0
script = None
startup = 0 startup = 0
try: try:
opts, args = getopt.getopt(argv, "c:deist:") opts, args = getopt.getopt(argv, "c:dir:st:")
except getopt.error, msg: except getopt.error, msg:
sys.stderr.write("Error: %s\n" % str(msg)) sys.stderr.write("Error: %s\n" % str(msg))
sys.stderr.write(usage_msg) sys.stderr.write(usage_msg)
sys.exit(2) sys.exit(2)
for o, a in opts: for o, a in opts:
noshell = 0 noshell = 0 # There are options, bring up a shell
if o == '-c': if o == '-c':
cmd = a cmd = a
if o == '-d': if o == '-d':
debug = 1 debug = 1
if o == '-e': if o == '-i':
edit = 1 interactive = 1
if o == '-r':
script = a
if o == '-s': if o == '-s':
startup = 1 startup = 1
if o == '-t': if o == '-t':
PyShell.shell_title = a PyShell.shell_title = a
if noshell: edit=1 if noshell: edit=1
if interactive and args and args[0] != "-": edit = 1
for i in range(len(sys.path)): for i in range(len(sys.path)):
sys.path[i] = os.path.abspath(sys.path[i]) sys.path[i] = os.path.abspath(sys.path[i])
@ -860,9 +867,11 @@ class main:
shell.open_debugger() shell.open_debugger()
if cmd: if cmd:
interp.execsource(cmd) interp.execsource(cmd)
elif not edit and args and args[0] != "-": elif script:
interp.execfile(args[0]) if os.path.isfile(script):
interp.execfile(script)
else:
print "No script file: ", script
shell.begin() shell.begin()
self.idle() self.idle()

View file

@ -1,12 +1,4 @@
#! /usr/bin/env python #! /usr/bin/env python
import os import PyShell
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
PyShell.main() PyShell.main()

View file

@ -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)