Today I was waiting at school for a RAID to be ready to be mounted. I
got tired of trying the "mount" command over and over; the computer
should tell me when it's ready. I ended up writing this python script
to tell me when it was ready:
#!/usr/bin/env python
# tell-me-when
import os
import sys
import time
from optparse import OptionParser
usage = '%prog {[options]} [command]'
parser = OptionParser (usage=usage)
parser.add_option ('-d', '--delay', dest='delay', default=5,
type=float, metavar='T', help='delay T seconds between tries')
opts, args = parser.parse_args ()
command = args[0]
while True:
result = os.system (command)
if result == 0:
zenity_command = 'zenity --info --title="Success!" ' \
+ '--text=\'Command "' + command + '" has completed successfully.\''
os.system (zenity_command)
break
else:
print '%s - "%s" still fails...' % (time.ctime (), command)
time.sleep (opts.delay)
I called it like so:
$ sudo tell-me-when -d 10 'mount /mnt/i3store0/'
The script tries running the given command until it returns an exit
status of 0, at which point it displays a message box informing the
user that the command has succeeded. In the mean time, it prints a
message in the shell with the current time for each failed try.
The program could easily be extended to play a sound upon success, but
I haven't implemented that yet since my work computer doesn't have
speakers.