dwtt/dwtt
2011-01-02 21:42:50 -05:00

88 lines
2.1 KiB
Python
Executable File

#!/usr/bin/env python
import os
import sys
import getopt
from CmdWindow import CmdWindow
from Command import Command
from DataStore import DataStore
PROGRAM_NAME = 'dwtt'
def usage():
print '''Usage: dwtt [options] [dbfile]
Options:
--help Show this help
'''
def main(argv):
try:
opts, args = getopt.getopt(argv[1:], "", ["help"])
except getopt.GetoptError:
usage()
sys.exit(1)
for opt, arg in opts:
if opt == "--help":
usage()
sys.exit()
else:
usage()
sys.exit(3)
timedbfile = os.path.expanduser('~') + os.path.sep + '.dwtt.db'
if len(args) >= 1:
timedbfile = args[0]
ds = DataStore(timedbfile)
while True:
cmdline = doCmdWindow()
cmd = Command(cmdline)
if not processCommand(cmd, ds):
break
def doCmdWindow():
c = CmdWindow()
return c.main()
def processStart(cmd, store):
pass
def processOut(cmd, store):
pass
def processTask(cmd, store):
parts = cmd.argstr.split(',', 1)
fullname = parts[0].strip()
longname = '' if len(parts) < 2 else parts[1].strip()
nameparts = fullname.split(':')
task = store.getTaskByName(fullname)
if task is not None:
# the task already exists, update it
store.updateTask(task.taskid, nameparts[-1], longname)
return False
parenttaskname = ':'.join(nameparts[:-1])
parenttask = store.getTaskByName(parenttaskname)
if parenttask is None:
return 'Parent task not found'
store.createTask(nameparts[-1].strip(), longname, parenttask.taskid)
return False
COMMAND_HANDLERS = {
'start' : processStart,
'out' : processOut,
'task' : processTask
}
# Returns boolean for whether the command prompt should be displayed again
def processCommand(cmd, store):
if cmd.command in COMMAND_HANDLERS:
return COMMAND_HANDLERS[cmd.command](cmd, store)
# todo: error on command not found
return False
if __name__ == "__main__":
main(sys.argv)