diff --git a/src/core/bt/proc.py b/src/core/bt/proc.py index eac199e2..813e955f 100644 --- a/src/core/bt/proc.py +++ b/src/core/bt/proc.py @@ -34,6 +34,6 @@ def setname(name): def setup(): app = session.settings["appname"] - write("Welcome to "+app+"!") + write("Welcome to "+app+"!",1) setname(app) session.settings["appdir"] = join(session.settings["user"], "."+app) \ No newline at end of file diff --git a/src/core/bt/scripting.py b/src/core/bt/scripting.py index 26befa4d..3f4acfff 100644 --- a/src/core/bt/scripting.py +++ b/src/core/bt/scripting.py @@ -8,13 +8,16 @@ __date__ ="$Feb 16, 2010 11:56:00 PM$" global scripts +import re scripts = [] from bt.signal import register from bt import file -from bt import cmd from bt.message import write +global extension +extension = ["scion"] + def add(script): global scripts @@ -22,6 +25,7 @@ def add(script): def runScript(script): + from bt import cmd f = file.fopen(script) for line in f: cmd.run(line) @@ -30,8 +34,17 @@ def runScript(script): def runScripts(): global scripts + + write("===== Begin output =====",1) + write(" ",1) + for script in scripts: runScript(script) + + write(" ",1) + write("====== End output ======",1) + + from bt import cmd cmd.run("exit") @@ -41,4 +54,14 @@ def checkForScripts(): register("scion-begin",runScripts,0) -register("scion-plugins-loaded",checkForScripts) \ No newline at end of file +# If the given file is a script, we add it to the script list +def isScript(script): + global scripts + write("Checking if file is a script: "+script,2) + for ext in extension: + if not re.match("\w*\."+ext,script) == None: + scripts += [script] + + +register("scion-plugins-loaded",checkForScripts) +register("scion-process-args",isScript) \ No newline at end of file diff --git a/src/core/bt/settings.py b/src/core/bt/settings.py index a1c8b250..65857a58 100644 --- a/src/core/bt/settings.py +++ b/src/core/bt/settings.py @@ -23,10 +23,6 @@ class Settings(dict): def setdefaults(self): - count = 0 - if ("-v" in argv) or ("--verbose" in argv): - count = argv.count("-v") + argv.count("--verbose") - self['verbose'] = count write("Setting default values",1) self['user'] = os.path.expanduser("~") self['plugpath'] = ["plugins", "extra"] diff --git a/src/core/session.py b/src/core/session.py index 8996a0dd..f806ebcf 100644 --- a/src/core/session.py +++ b/src/core/session.py @@ -33,35 +33,39 @@ def setSession(): def parseInput(): from bt import scripting - write("Parsing user input",1) input = sys.argv[1:] - write(input,True) optc = "vp:s:" long = ["verbose", "path=", "script="] # Attempt to parse user input try: opts, args = getopt.getopt(input, optc, long) + settings["verbose"] = 0 for opt in opts: - if opt[0] == "-p": + if (opt[0]=="-p") or (opt[0]=="--path"): settings["plugpath"] += [opt[1]] - elif opt[0] == "-s": + elif (opt[0]=="-s") or (opt[0]=="--script"): scripting.add(opt[1]) - settings["args"] = args + elif (opt[0]=="-v") or (opt[0]=="--verbose"): + settings["verbose"] += 1 + for arg in args: + signal.emit("scion-process-args",arg) + #settings["args"] = args except getopt.GetoptError, e: write(e.msg) + write(input,2) + write("User input has been processed",1) settings = Settings() +parseInput() # We want to configure settings as early as possible settings.setdefaults() manager = Manager() alias = Alias() -parseInput() - # Register functions to call when all plugins have been loaded signal.register("scion-plugins-loaded",proc.setup,0) signal.register("scion-plugins-loaded",setSession,1) diff --git a/src/extra/guiGTK/window.py b/src/extra/guiGTK/window.py index 03a3743d..cf9de65a 100644 --- a/src/extra/guiGTK/window.py +++ b/src/extra/guiGTK/window.py @@ -13,7 +13,7 @@ import button import label from bt.message import write import manager -import settings +from session import settings def empty(text=None,verbose=None):