- # Check SMF invocation environment
- if os.getenv("SMF_FMRI") == None or os.getenv("SMF_METHOD") != "start":
- sys.stderr.write("Command line invocation of %s unsupported.\n" \
- % (sys.argv[0]))
- sys.stderr.write("This command is intended for smf(5) invocation only.\n")
- sys.exit(smf.SMF_EXIT_ERR_NOSMF)
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--foreground', action='store_true', help='Do not daemonize', default=False)
+ parser.add_argument('--config', '-c', type=str, help='Configuration file', default='/etc/time-slider/timesliderd.conf')
+ parser.add_argument('--configdump', action='store_true', help='Dump default values in config file format', default=False)
+ args, _ = parser.parse_known_args()
+
+ logger = logging.getLogger('time-slider')
+ logger.setLevel(logging.DEBUG)
+ if args.foreground:
+ handler = logging.StreamHandler()
+ else:
+ handler = SysLogHandler(address='/dev/log')
+ handler.setLevel(logging.DEBUG)
+ handler.setFormatter(logging.Formatter('%(asctime)s %(levelname)s: %(message)s', '%b %d %H:%M:%S time-sliderd:'))
+ logger.addHandler(handler)
+
+ if args.configdump:
+ timesliderconfig.configdump()
+ sys.exit(smf.SMF_EXIT_OK)
+
+ timesliderconfig.configfile = args.config