def main(): locale.setlocale(locale.LC_ALL, os.environ.get("LANG", "C")) parser = OptionParser() parser.add_option("-d", "--db", dest="filename", help="TODO database", metavar="FILE") parser.add_option("-c", "--create-only", dest="createOnly", default=False, action="store_true", help="Just create an empty database") parser.add_option("-v", "--version", dest="version", action="store_true", help="Display Yokadi current version") (options, args) = parser.parse_args() if options.version: print "Yokadi - %s" % utils.currentVersion() return if not options.filename: # Look if user define an env VAR for yokadi db options.filename=os.getenv("YOKADI_DB") if options.filename: print "Using env defined database (%s)" % options.filename else: options.filename=os.path.normcase(os.path.expanduser("~/.yokadi.db")) print "Using default database (%s)" % options.filename db.connectDatabase(options.filename) if options.createOnly: return db.setDefaultConfig() # Set default config parameters cmd = YokadiCmd() try: if len(args) > 0: cmd.onecmd(" ".join(args)) else: cmd.cmdloop() except KeyboardInterrupt: print "\n\tBreak ! (the nice way to quit is 'quit' or 'EOF' (ctrl-d)" sys.exit(1) # Save history cmd.writeHistory()
# that breaks. print >>sys.stderr, "*** I/O error ***\n\t%s" % e except KeyboardInterrupt: print "*** Break ***" except Exception, e: tui.error("Unhandled exception (oups)\n\t%s" % e) print "This is a bug of Yokadi, sorry." print "Send the above message by email to Yokadi developers ([email protected]) to help them make Yokadi better." cut="---------------------8<----------------------------------------------" print cut traceback.print_exc() print "--" print "Python: %s" % sys.version.replace("\n", " ") print "SQLObject: %s" % sqlobjectVersion.replace("\n", " ") print "OS: %s (%s)" % os.uname()[0:3:2] print "Yokadi: %s" % utils.currentVersion() print cut print def loadHistory(self): """Tries to load previous history list from disk""" try: readline.read_history_file(self.historyPath) except Exception, e: # Cannot load any previous history. Start from a clear one pass def writeHistory(self): """Writes shell history to disk""" try: # Open r/w and close file to create one if needed