diff --git a/in/init=lunar=wicd.in b/in/init=lunar=wicd.in new file mode 100755 index 0000000..b16ff30 --- /dev/null +++ b/in/init=lunar=wicd.in @@ -0,0 +1,13 @@ +#!/bin/bash +# +# Startup script for wicd +# +# chkconfig: 345 99 01 +# +# description: wicd wireless/wired internet connection daemon +# +# processname: wicd +# pidfile: %PIDFILE% +# + +. /lib/lsb/init-functions $1 diff --git a/setup.py b/setup.py index f7c6e3a..b96de8d 100755 --- a/setup.py +++ b/setup.py @@ -162,6 +162,9 @@ class configure(Command): self.initfile = 'init/pld/wicd' elif os.path.exists('/usr/bin/crux'): self.init = '/etc/rc.d/' + elif os.path.exists('/etc/lunar.release'): + self.init='/etc/init.d/' + self.initfile = 'init/lunar/wicd' else: self.init = 'FAIL' self.no_install_init = True diff --git a/wicd/misc.py b/wicd/misc.py index dac2743..6e3d5fa 100644 --- a/wicd/misc.py +++ b/wicd/misc.py @@ -57,7 +57,7 @@ ROUTE = 2 GKSUDO = 1 KDESU = 2 KTSUSS = 3 -_sudo_dict = { +__sudo_dict = { AUTO : "", GKSUDO : "gksudo", KDESU : "kdesu", @@ -171,20 +171,9 @@ def WriteLine(my_file, text): """ write a line to a file """ my_file.write(text + "\n") -def ExecuteScripts(scripts_dir, verbose=False): - """ Execute every executable file in a given directory. """ - for obj in os.listdir(scripts_dir): - obj = os.path.abspath(os.path.join(scripts_dir, obj)) - if os.path.isfile(obj) and os.access(obj, os.X_OK): - ExecuteScript(os.path.abspath(obj), verbose=verbose) - -def ExecuteScript(script, verbose=False): +def ExecuteScript(script): """ Execute a command and send its output to the bit bucket. """ - if verbose: - print "Executing %s" % script - ret = call("%s > /dev/null 2>&1" % script, shell=True) - if verbose: - "%s returned %s" % (script, ret) + call("%s > /dev/null 2>&1" % script, shell=True) def ReadFile(filename): """ read in a file and return it's contents as a string """ @@ -411,7 +400,7 @@ def get_sudo_cmd(msg, prog_num=0): def choose_sudo_prog(prog_num=0): """ Try to intelligently decide which graphical sudo program to use. """ if prog_num: - return find_path(_sudo_dict[prog_num]) + return find_path(__sudo_dict[prog_num]) desktop_env = detect_desktop_environment() env_path = os.environ['PATH'].split(":") paths = [] diff --git a/wicd/networking.py b/wicd/networking.py index 49d9fb5..fee1574 100644 --- a/wicd/networking.py +++ b/wicd/networking.py @@ -202,12 +202,10 @@ class Controller(object): def Disconnect(self, *args, **kargs): """ Disconnect from the network. """ iface = self.iface - misc.ExecuteScripts(wpath.disconnectscripts, self.debug) - if self.disconnect_script: + if self.disconnect_script != None: print 'Running disconnect script' misc.ExecuteScript(expand_script_macros(self.disconnect_script, - 'disconnection', *args), - self.debug) + 'disconnection', *args)) iface.ReleaseDHCP() iface.SetAddress('0.0.0.0') iface.FlushRoutes() @@ -336,6 +334,7 @@ class ConnectThread(threading.Thread): finally: self.lock.release() + def GetStatus(self): """ Get the threads current status message in a thread-safe way. @@ -369,10 +368,6 @@ class ConnectThread(threading.Thread): self.SetStatus('interface_down') iface.Down() - @abortable - def run_global_scripts_if_needed(self, script_dir): - misc.ExecuteScripts(script_dir, verbose=self.debug) - @abortable def run_script_if_needed(self, script, msg, bssid='wired', essid='wired'): """ Execute a given script if needed. @@ -384,8 +379,7 @@ class ConnectThread(threading.Thread): """ if script: print 'Executing %s script' % (msg) - misc.ExecuteScript(expand_script_macros(script, msg, bssid, essid), - self.debug) + misc.ExecuteScript(expand_script_macros(script, msg, bssid, essid)) @abortable def flush_routes(self, iface): @@ -797,7 +791,6 @@ class WirelessConnectThread(ConnectThread): self.is_connecting = True # Run pre-connection script. - self.run_global_scripts_if_needed(wpath.preconnectscripts) self.run_script_if_needed(self.before_script, 'pre-connection', self.network['bssid'], self.network['essid']) @@ -840,7 +833,6 @@ class WirelessConnectThread(ConnectThread): self.set_dns_addresses() # Run post-connection script. - self.run_global_scripts_if_needed(wpath.postconnectscripts) self.run_script_if_needed(self.after_script, 'post-connection', self.network['bssid'], self.network['essid']) @@ -1009,7 +1001,6 @@ class WiredConnectThread(ConnectThread): self.is_connecting = True # Run pre-connection script. - self.run_global_scripts_if_needed(wpath.preconnectscripts) self.run_script_if_needed(self.before_script, 'pre-connection', 'wired', 'wired') @@ -1028,7 +1019,6 @@ class WiredConnectThread(ConnectThread): self.set_dns_addresses() # Run post-connection script. - self.run_global_scripts_if_needed(wpath.postconnectscripts) self.run_script_if_needed(self.after_script, 'post-connection', 'wired', 'wired')