Beispiel #1
0
    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...")
Beispiel #2
0
    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...")
Beispiel #3
0
    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))
Beispiel #4
0
    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())
Beispiel #5
0
    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)
Beispiel #6
0
    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())
Beispiel #7
0
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
Beispiel #8
0
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
Beispiel #9
0
 def setUp(self):
     super().setUp()
     self.defaultDataDir = basepaths.getDataDir()
     self.defaultDbPath = basepaths.getDbPath(self.defaultDataDir)
Beispiel #10
0
 def testDbEnvVar(self):
     path = "foo"
     os.environ["YOKADI_DB"] = path
     self.assertEqual(basepaths.getDbPath(basepaths.getDataDir()), path)
Beispiel #11
0
 def testMigrateNothingToDo(self):
     newDb = Path(basepaths.getDbPath(basepaths.getDataDir()))
     basepaths.migrateOldDb(str(newDb))
     basepaths.migrateOldHistory()
     self.assertFalse(newDb.exists())
Beispiel #12
0
 def testDbEnvVar(self):
     path = "foo"
     os.environ["YOKADI_DB"] = path
     self.assertEqual(basepaths.getDbPath(), path)
Beispiel #13
0
 def testMigrateNothingToDo(self):
     newDb = Path(basepaths.getDbPath())
     basepaths.migrateOldDb()
     basepaths.migrateOldHistory()
     self.assertFalse(newDb.exists())
Beispiel #14
0
 def setUp(self):
     super().setUp()
     self.defaultDataDir = basepaths.getDataDir()
     self.defaultDbPath = basepaths.getDbPath(self.defaultDataDir)
Beispiel #15
0
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