Smith Dhumbumroong avatar Smith Dhumbumroong committed c08fb1d

Add ability to specify restart and shutdown commands.

Comments (0)

Files changed (1)

         config_file = os.path.join(config_dir, 'PyShutdownBoxrc')
 
         # define sections name
-        command_run = 'Command to run before shutdown'
-        process_list = 'List of process to close before shutdown, separated by comma'
-        logout_command = 'Command used to logout'
+        command_run = 'Command to run before shutdown.'
+        process_list = 'List of process to close before shutdown, separated by comma.'
+        logout_command = 'Command used to logout.'
+        restart_command = 'Restart command. Specify "dbus" to use dbus to restart.'
+        shutdown_command = 'Shutdown command. Specify "dbus" to use dbus to shutdown.'
 
         config = ConfigParser.RawConfigParser()
 
             self.rc_shutdown = config.get(command_run, 'command')
             self.plist = config.get(process_list, 'process_list')
             self.logout_cmd = config.get(logout_command, 'logout_command')
+            self.restart_cmd = config.get(restart_command, 'restart_command')
+            self.shutdown_cmd = config.get(shutdown_command, 'shutdown_command')
 
         else:
             if not os.path.isdir(config_dir):
             config.set(process_list, 'process_list', 'None')
 
             config.add_section(logout_command)
-            config.set(process_list, 'logout_command', 'None')
+            config.set(logout_command, 'logout_command', 'None')
+
+            config.add_section(restart_command)
+            config.set(restart_command, 'restart_command', 'dbus')
+
+            config.add_section(shutdown_command)
+            config.set(shutdown_command, 'shutdown_command', 'dbus')
 
             with open(config_file, 'wb') as configfile:
                 config.write(configfile)
             os.system(self.rc_shutdown)
         self.CloseProcesses(self.plist)
 
-        self.pwm.Restart()
+        if self.restart_cmd is "dbus":
+            self.pwm.Restart()
+        else:
+            os.system(self.restart_cmd)
 
     def shutdown(self, widget):
         if not self.rc_shutdown == 'None':
             os.system(self.rc_shutdown)
         self.CloseProcesses(self.plist)
 
-        self.pwm.Stop()
+        if self.shutdown_cmd is "dbus":
+            self.pwm.Stop()
+        else:
+            os.system(self.shutdown_cmd)
 
     def exit(self, widget):
         gtk.main_quit()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.