import configparser import datetime import json import os import pathlib import subprocess import sys import persistqueue config = configparser.ConfigParser() config.read(os.getenv('CHEDDAR_KNIGHT_CONFIG', 'settings.cfg')) storage_path = config.get('General', 'storage_path') class Timer: @classmethod def schedule(cls, time, data): subprocess.run(( '/usr/bin/systemd-run', '--user', '--working-directory={0}'.format(pathlib.Path(__file__).parent), '--timer-property=AccuracySec=1s', '--on-calendar={0}'.format(time.strftime('%Y-%m-%d %H:%M:%S UTC')), '/usr/bin/python3', __file__, json.dumps(data) )) @classmethod def execute(cls, data): queue = persistqueue.SQLiteQueue(storage_path) queue.put(data) queue.task_done() def main(): Timer.execute(json.loads(sys.argv[1])) if __name__ == '__main__': main()