def run(self): filename = self.options.filename if not filename: filename = basepaths.getDbPath() print("Using default database (%s)" % filename) db.connectDatabase(filename, createIfNeeded=False) session = db.getSession() # Basic tests : if not len(session.query(db.Config).all()) >=1: print("Your database seems broken or not initialised properly. Start yokadi command line tool to do it") sys.exit(1) # Start ical http handler if self.options.icalserver: yokadiIcalServer = YokadiIcalServer(self.options.tcpPort, self.options.tcpListen) yokadiIcalServer.start() # Start the main event Loop try: while event[1] != "SIGTERM": eventLoop() event[0] = True except KeyboardInterrupt: print("\nExiting...")
def run(self): filename = self.options.filename if not filename: filename = basepaths.getDbPath() print("Using default database (%s)" % filename) db.connectDatabase(filename, createIfNeeded=False) session = db.getSession() # Basic tests : if not len(session.query(db.Config).all()) >= 1: print( "Your database seems broken or not initialised properly. Start yokadi command line tool to do it" ) sys.exit(1) # Start ical http handler if self.options.icalserver: yokadiIcalServer = YokadiIcalServer(self.options.tcpPort, self.options.tcpListen) yokadiIcalServer.start() # Start the main event Loop try: while event[1] != "SIGTERM": eventLoop() event[0] = True except KeyboardInterrupt: print("\nExiting...")
def testMigrateOldDbFails(self): oldDb = Path(self.testHomeDir) / '.yokadi.db' newDb = Path(basepaths.getDbPath(basepaths.getDataDir())) oldDb.touch() newDb.parent.mkdir(parents=True) newDb.touch() self.assertRaises(basepaths.MigrationException, basepaths.migrateOldDb, str(newDb))
def testMigrateOldDb(self): oldDb = Path(self.testHomeDir) / '.yokadi.db' newDb = Path(basepaths.getDbPath(basepaths.getDataDir())) oldDb.touch() basepaths.migrateOldDb(str(newDb)) self.assertFalse(oldDb.exists()) self.assertTrue(newDb.exists())
def testMigrateOldDbFails(self): oldDb = Path(self.testHomeDir) / '.yokadi.db' newDb = Path(basepaths.getDbPath()) oldDb.touch() newDb.parent.mkdir(parents=True) newDb.touch() self.assertRaises(basepaths.MigrationException, basepaths.migrateOldDb)
def testMigrateOldDb(self): oldDb = Path(self.testHomeDir) / '.yokadi.db' newDb = Path(basepaths.getDbPath()) oldDb.touch() basepaths.migrateOldDb() self.assertFalse(oldDb.exists()) self.assertTrue(newDb.exists())
def processDbPathArg(dbPath, dataDir): if not dbPath: return basepaths.getDbPath(dataDir) dbPath = os.path.abspath(dbPath) dbDir = os.path.dirname(dbPath) tui.warning('--db option is deprecated and will be removed in the next version, use --datadir instead') if not os.path.isdir(dbDir): tui.error("Directory '{}' does not exist".format(dbDir)) sys.exit(1) return dbPath
def processDbPathArg(dbPath, dataDir): if not dbPath: return basepaths.getDbPath(dataDir) dbPath = os.path.abspath(dbPath) dbDir = os.path.dirname(dbPath) tui.warning( '--db option is deprecated and will be removed in the next version, use --datadir instead' ) if not os.path.isdir(dbDir): tui.error("Directory '{}' does not exist".format(dbDir)) sys.exit(1) return dbPath
def setUp(self): super().setUp() self.defaultDataDir = basepaths.getDataDir() self.defaultDbPath = basepaths.getDbPath(self.defaultDataDir)
def testDbEnvVar(self): path = "foo" os.environ["YOKADI_DB"] = path self.assertEqual(basepaths.getDbPath(basepaths.getDataDir()), path)
def testMigrateNothingToDo(self): newDb = Path(basepaths.getDbPath(basepaths.getDataDir())) basepaths.migrateOldDb(str(newDb)) basepaths.migrateOldHistory() self.assertFalse(newDb.exists())
def testDbEnvVar(self): path = "foo" os.environ["YOKADI_DB"] = path self.assertEqual(basepaths.getDbPath(), path)
def testMigrateNothingToDo(self): newDb = Path(basepaths.getDbPath()) basepaths.migrateOldDb() basepaths.migrateOldHistory() self.assertFalse(newDb.exists())
def main(): locale.setlocale(locale.LC_ALL, os.environ.get("LANG", "C")) parser = ArgumentParser() parser.add_argument("-d", "--db", dest="filename", help="TODO database (default: %s)" % basepaths.getDbPath(), metavar="FILE") parser.add_argument("-c", "--create-only", dest="createOnly", default=False, action="store_true", help="Just create an empty database") parser.add_argument("-u", "--update", dest="update", action="store_true", help="Update database to the latest version") parser.add_argument("-v", "--version", dest="version", action="store_true", help="Display Yokadi current version") parser.add_argument('cmd', nargs='*') args = parser.parse_args() if args.version: print("Yokadi - %s" % yokadi.__version__) return 0 basepaths.migrateOldHistory() try: basepaths.migrateOldDb() except basepaths.MigrationException as exc: print(exc) return 1 if not args.filename: args.filename = basepaths.getDbPath() fileutils.createParentDirs(args.filename) if args.update: return update.update(args.filename) try: db.connectDatabase(args.filename) except db.DbUserException as exc: print(exc) return 1 if args.createOnly: return 0 db.setDefaultConfig() # Set default config parameters cmd = YokadiCmd() try: if len(args.cmd) > 0: print(" ".join(args.cmd)) cmd.onecmd(" ".join(args.cmd)) else: cmd.cmdloop() except KeyboardInterrupt: print("\n\tBreak ! (the nice way to quit is 'quit' or 'EOF' (ctrl-d)") return 1 # Save history cmd.writeHistory() return 0