1.1 --- a/cronrec.py Thu Sep 30 02:14:24 2010 +0200
1.2 +++ b/cronrec.py Thu Sep 30 03:52:34 2010 +0200
1.3 @@ -5,25 +5,74 @@
1.4 Author: Eugen Sawin (sawine@me73.com)
1.5 """
1.6
1.7 +import os
1.8 import argparse
1.9
1.10 +WD = "working_path"
1.11 +CONFIG = {WD: str}
1.12 +CONFIG_SEP = "="
1.13 +
1.14 +config = {}
1.15 +
1.16 +try: # Windows
1.17 + from win32com.shell import shellcon, shell
1.18 + HOMEDIR = shell.SHGetFolderPath(0, shellcon.CSIDL_LOCAL_APPDATA, 0, 0)
1.19 +except ImportError: # Linux
1.20 + HOMEDIR = os.path.expanduser("~")
1.21 +
1.22 +CONFIG_FILE = "%s/.cronrecrc" % HOMEDIR
1.23 +
1.24 +def read_config():
1.25 + config = {}
1.26 + with open(CONFIG_FILE, "r") as config_stream:
1.27 + config_lines = [l.split(CONFIG_SEP) for l in config_stream.readlines()
1.28 + if CONFIG_SEP in l]
1.29 + for key, value in config_lines:
1.30 + key = key.strip().lower()
1.31 + value = value.strip()
1.32 + if key in CONFIG:
1.33 + config[key] = CONFIG[key](value)
1.34 + return config
1.35 +
1.36 +def write_config(config):
1.37 + with open(CONFIG_FILE, "w") as config_input:
1.38 + config_input.write("\n".join([CONFIG_SEP.join((k, v))
1.39 + for k, v in config.iteritems() if k in CONFIG]))
1.40 +
1.41 +def init(args):
1.42 + last_wd = None
1.43 + if WD in config:
1.44 + last_wd = config[WD]
1.45 + config[WD] = args.dbpath
1.46 + write_config(config)
1.47 + if last_wd != config[WD]:
1.48 + print "Changed working directory from %s to %s" % (last_wd, config[WD])
1.49 + elif not last_wd:
1.50 + print "Set new working directory to %s" % (config[WD])
1.51 + else:
1.52 + print "Working directory remains at %s" % config[WD]
1.53 +
1.54 def begin(args):
1.55 - print "begins"
1.56 + print "begins"
1.57
1.58 def end(args):
1.59 - print "ends"
1.60 + print "ends"
1.61
1.62 if __name__ == "__main__":
1.63 - parser = argparse.ArgumentParser(description="Records time.")
1.64 - subs = parser.add_subparsers()
1.65 + config = read_config()
1.66 + parser = argparse.ArgumentParser(description="Records time.")
1.67 + subs = parser.add_subparsers()
1.68 + sub_begin = subs.add_parser("init")
1.69 + sub_begin.add_argument("dbpath")
1.70 + sub_begin.set_defaults(func=init)
1.71
1.72 - sub_begin = subs.add_parser("begin")
1.73 - sub_begin.add_argument("label")
1.74 - sub_begin.set_defaults(func=begin)
1.75 + sub_begin = subs.add_parser("begin")
1.76 + sub_begin.add_argument("label")
1.77 + sub_begin.set_defaults(func=begin)
1.78
1.79 - sub_end = subs.add_parser("end")
1.80 - sub_end.add_argument("label")
1.81 - sub_end.set_defaults(func=end)
1.82 + sub_end = subs.add_parser("end")
1.83 + sub_end.add_argument("label")
1.84 + sub_end.set_defaults(func=end)
1.85
1.86 - args = parser.parse_args()
1.87 - args.func(args)
1.88 + args = parser.parse_args()
1.89 + args.func(args)