On Friday 20 Jan 2017 00:36 CET, Cecil Westerhof wrote:
> I wrote a function for switching to the correct virtual desktop and> starting all the commands. I am also using with now:> def do_desktop(desktop, commands, seconds_to_wait = 10):> desktop_command = ('wmctrl -s ' + desktop).split()> check_call(tuple(desktop_command))> for command_arr in commands:> command = command_arr[0].split()> log_directory = command_arr[1]> directory = command_arr[2]> if (directory != ''):> chdir(directory)> if (log_directory == 'NONE'):> Popen(tuple(command.split()))> else:> log_file_name = log_directory.replace('%T', strftime('%F_%R'))> with open(log_file_name, 'w') as log_file:> Popen(tuple(command), stdout = log_file, stderr = STDOUT)> if (directory != ''):> set_default_dir()> sleep(seconds_to_wait)
I wrote a little better version:
def do_desktop(desktop, commands, seconds_to_wait):
desktop_command = (switch_desktop + desktop).split()
if seconds_to_wait == 0:
seconds_to_wait = 10
check_call(desktop_command)
for command_arr in commands:
command = command_arr[0].split()
log_directory = command_arr[1]
directory = command_arr[2]
if not log_directory:
log_directory = '/dev/null'
log_file_name = log_directory.replace('%T', strftime('%F_%R'))
with open(log_file_name, 'w') as log_file:
Popen(command, stdout = log_file, cwd = directory, stderr = STDOUT)
sleep(seconds_to_wait)
When there is no log_directory I set it to '/dev/null': that makes the
code a little bit cleaner.
And everything is now fetched from the database:
for desktop in cursor.execute(select_desktops).fetchall():
desktop_name = desktop[0]
desktop_value = desktop[1]
desktop_wait = desktop[2]
commands = cursor.execute(select_commands, [desktop_name]).fetchall()
do_desktop(desktop_value, commands, desktop_wait)
--
Cecil Westerhof
Senior Software Engineer
LinkedIn: http://www.linkedin.com/in/cecilwesterhof
--
https://mail.python.org/mailman/listinfo/python-list