gnome-shell r31 - trunk/scripts
- From: kamstrup svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-shell r31 - trunk/scripts
- Date: Tue, 4 Nov 2008 22:40:52 +0000 (UTC)
Author: kamstrup
Date: Tue Nov 4 22:40:52 2008
New Revision: 31
URL: http://svn.gnome.org/viewvc/gnome-shell?rev=31&view=rev
Log:
Autodetect where the 'pidof' command lives and enable optional verbose logging inside start-replace
scripts/start-replace: Detect if 'pidof' lives in /sbin, /bin, or /usr/bin. Add conditional verbose logging if -v is passed on the command line
scripts/launcher.py: Add method is_verbose() to Launcher class
Modified:
trunk/scripts/launcher.py
trunk/scripts/start-replace
Modified: trunk/scripts/launcher.py
==============================================================================
--- trunk/scripts/launcher.py (original)
+++ trunk/scripts/launcher.py Tue Nov 4 22:40:52 2008
@@ -78,7 +78,10 @@
plugin = os.path.join(self.plugin_dir, "libgnome-shell.la")
args.extend(['metacity', '--mutter-plugins=' + plugin, '--replace'])
return subprocess.Popen(args, env=env)
-
+
+ def is_verbose (self):
+ """Returns whether the Launcher was started in verbose mode"""
+ return self.options.verbose
Modified: trunk/scripts/start-replace
==============================================================================
--- trunk/scripts/start-replace (original)
+++ trunk/scripts/start-replace Tue Nov 4 22:40:52 2008
@@ -8,29 +8,54 @@
launcher = Launcher()
+def find_cmd (cmd_list):
+ """
+ Takes a list of command candidates and returns the first one that exists.
+ Raises a system exit if none of the commands exist.
+ """
+ for cmd in cmd_list:
+ if os.path.exists(cmd):
+ return cmd
+
+ raise SystemExit("None of the commands %s exist" % cmd_list)
+
try:
# Kill gnome-panel in a way that it won't autorespawn
- pidof = subprocess.Popen(["/sbin/pidof", "gnome-panel"], stdout=subprocess.PIPE)
+ pidof_cmd = find_cmd(["/sbin/pidof", "/bin/pidof", "/usr/bin/pidof"])
+
+ pidof = subprocess.Popen([pidof_cmd, "gnome-panel"], stdout=subprocess.PIPE)
pids = pidof.communicate()[0].split()
pidof.wait()
devnull = open("/dev/null", "w")
for pid in pids:
+ if launcher.is_verbose():
+ print "Terminating panel process %s" % pid
subprocess.call(["gdb", "-batch-silent",
"-ex", "call panel_session_do_not_restart()",
"-ex", "call exit(0)",
"-p", pid], stdout=devnull, stderr=devnull)
devnull.close()
-
+
+ if launcher.is_verbose():
+ print "Starting shell"
shell = launcher.start_shell()
# Wait for shell to exit
try:
+ if launcher.is_verbose():
+ print "Waiting for shell to exit"
shell.wait()
+ if launcher.is_verbose():
+ print "Shell is dead"
except KeyboardInterrupt, e:
os.kill(shell.pid, signal.SIGKILL)
shell.wait()
+ if launcher.is_verbose():
+ print "Shell killed"
finally:
# Restart gnome-panel and window manager
-
+ if launcher.is_verbose():
+ print "Restarting Metacity and Gnome Panel"
+
subprocess.Popen(["/usr/bin/metacity"])
subprocess.Popen(["/usr/bin/gnome-panel"])
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]