Exemplo n.º 1
0
 def testRelativeDb(self):
     with TemporaryDirectory(prefix="yokadi-tests-") as tmpDir:
         os.chdir(tmpDir)
         args = parseArgs(["--db", "foo.db"])
         dataDir, dbPath = commonargs.processArgs(args)
         self.assertEqual(dataDir, self.defaultDataDir)
         self.assertEqual(dbPath, os.path.join(tmpDir, "foo.db"))
Exemplo n.º 2
0
def main():
    # TODO: check that yokadid is not already running for this database ? Not very harmful...
    # Set process name to "yokadid"
    setproctitle.setproctitle("yokadid")

    # Make the event list global to allow communication with main event loop
    global event

    defaultPidFile = os.path.join(basepaths.getRuntimeDir(), "yokadid.pid")
    defaultLogFile = os.path.join(basepaths.getLogDir(), "yokadid.log")
    args = parseOptions(defaultPidFile, defaultLogFile)
    _, dbPath = commonargs.processArgs(args)

    if args.kill:
        killYokadid(args.pidFile)
        sys.exit(0)

    if args.pidFile == defaultPidFile:
        fileutils.createParentDirs(args.pidFile, mode=0o700)

    if args.logFile == defaultLogFile:
        fileutils.createParentDirs(args.logFile, mode=0o700)

    signal(SIGTERM, sigTermHandler)
    signal(SIGHUP, sigHupHandler)

    if args.restart:
        daemon = YokadiDaemon(dbPath, args)
        daemon.restart()

    daemon = YokadiDaemon(dbPath, args)
    if args.foreground:
        daemon.run()
    else:
        daemon.start()
Exemplo n.º 3
0
 def testRelativeDataDir(self):
     with TemporaryDirectory(prefix="yokadi-tests-") as tmpDir:
         os.chdir(tmpDir)
         args = parseArgs(["--datadir", "."])
         dataDir, dbPath = commonargs.processArgs(args)
         self.assertEqual(dataDir, tmpDir)
         self.assertEqual(dbPath, os.path.join(tmpDir, basepaths.DB_NAME))
Exemplo n.º 4
0
 def testRelativeDb(self):
     with TemporaryDirectory(prefix="yokadi-tests-") as tmpDir:
         os.chdir(tmpDir)
         args = parseArgs(["--db", "foo.db"])
         dataDir, dbPath = commonargs.processArgs(args)
         self.assertEqual(dataDir, self.defaultDataDir)
         self.assertEqual(dbPath, os.path.join(tmpDir, "foo.db"))
Exemplo n.º 5
0
 def testRelativeDataDir(self):
     with TemporaryDirectory(prefix="yokadi-tests-") as tmpDir:
         os.chdir(tmpDir)
         args = parseArgs(["--datadir", "."])
         dataDir, dbPath = commonargs.processArgs(args)
         self.assertEqual(dataDir, tmpDir)
         self.assertEqual(dbPath, os.path.join(tmpDir, basepaths.DB_NAME))
Exemplo n.º 6
0
 def testArgsOverrideEnvVar(self):
     with TemporaryDirectory(prefix="yokadi-tests-") as tmpDir:
         os.environ["YOKADI_DB"] = os.path.join(tmpDir, "env.db")
         os.chdir(tmpDir)
         args = parseArgs(["--db", "arg.db"])
         dataDir, dbPath = commonargs.processArgs(args)
         self.assertEqual(dataDir, self.defaultDataDir)
         self.assertEqual(dbPath, os.path.join(tmpDir, "arg.db"))
Exemplo n.º 7
0
    def testNoArguments(self):
        args = parseArgs([])
        dataDir, dbPath = commonargs.processArgs(args)
        self.assertEqual(dataDir, self.defaultDataDir)
        self.assertEqual(dbPath, self.defaultDbPath)

        self.assertTrue(os.path.isdir(dataDir))
        self.assertTrue(os.path.isdir(os.path.dirname(dbPath)))
Exemplo n.º 8
0
 def testArgsOverrideEnvVar(self):
     with TemporaryDirectory(prefix="yokadi-tests-") as tmpDir:
         os.environ["YOKADI_DB"] = os.path.join(tmpDir, "env.db")
         os.chdir(tmpDir)
         args = parseArgs(["--db", "arg.db"])
         dataDir, dbPath = commonargs.processArgs(args)
         self.assertEqual(dataDir, self.defaultDataDir)
         self.assertEqual(dbPath, os.path.join(tmpDir, "arg.db"))
Exemplo n.º 9
0
    def testNoArguments(self):
        args = parseArgs([])
        dataDir, dbPath = commonargs.processArgs(args)
        self.assertEqual(dataDir, self.defaultDataDir)
        self.assertEqual(dbPath, self.defaultDbPath)

        self.assertTrue(os.path.isdir(dataDir))
        self.assertTrue(os.path.isdir(os.path.dirname(dbPath)))
Exemplo n.º 10
0
def main():
    locale.setlocale(locale.LC_ALL, os.environ.get("LANG", "C"))
    parser = createArgumentParser()
    args = parser.parse_args()
    dataDir, dbPath = commonargs.processArgs(args)

    basepaths.migrateOldHistory()
    try:
        basepaths.migrateOldDb(dbPath)
    except basepaths.MigrationException as exc:
        print(exc)
        return 1

    if args.update:
        return update.update(dbPath)

    try:
        db.connectDatabase(dbPath)
    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
Exemplo n.º 11
0
def main():
    locale.setlocale(locale.LC_ALL, os.environ.get("LANG", "C"))
    parser = createArgumentParser()
    args = parser.parse_args()
    dataDir, dbPath = commonargs.processArgs(args)

    basepaths.migrateOldHistory()
    try:
        basepaths.migrateOldDb(dbPath)
    except basepaths.MigrationException as exc:
        print(exc)
        return 1

    if args.update:
        return update.update(dbPath)

    try:
        db.connectDatabase(dbPath)
    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