Compare commits
No commits in common. "master" and "v0.1.4" have entirely different histories.
@ -47,10 +47,6 @@ def parse_args():
|
|||||||
'-L', '--no-lock',
|
'-L', '--no-lock',
|
||||||
help='Allow multiple simultanious executions of this cron job',
|
help='Allow multiple simultanious executions of this cron job',
|
||||||
action='store_true')
|
action='store_true')
|
||||||
parser.add_argument(
|
|
||||||
'-r', '--restart',
|
|
||||||
help='Restart the process if not running; exit with success if previous instance is running',
|
|
||||||
action='store_true')
|
|
||||||
|
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
@ -108,7 +104,7 @@ def exec_command(args, outfile, errfile, resfile):
|
|||||||
proc.terminate()
|
proc.terminate()
|
||||||
proc.communicate(timeout=10)
|
proc.communicate(timeout=10)
|
||||||
|
|
||||||
now=datetime.datetime.now()
|
now=datetime.datetime.utcnow()
|
||||||
nowstr=now.strftime('%Y-%m-%d_%H%M.%S')
|
nowstr=now.strftime('%Y-%m-%d_%H%M.%S')
|
||||||
resfile.write('{}\n{}'.format(nowstr, proc.returncode))
|
resfile.write('{}\n{}'.format(nowstr, proc.returncode))
|
||||||
return proc.returncode
|
return proc.returncode
|
||||||
@ -171,7 +167,7 @@ def print_runs(runs, clean=True):
|
|||||||
def main():
|
def main():
|
||||||
time_format = '%Y-%m-%d_%H%M'
|
time_format = '%Y-%m-%d_%H%M'
|
||||||
args = parse_args()
|
args = parse_args()
|
||||||
now = datetime.datetime.now()
|
now = datetime.datetime.utcnow()
|
||||||
nowstr = now.strftime(time_format)
|
nowstr = now.strftime(time_format)
|
||||||
libdir = os.path.join(args.cachedir[0], args.name, nowstr)
|
libdir = os.path.join(args.cachedir[0], args.name, nowstr)
|
||||||
lckdir = os.path.join(args.lockdir[0], args.name)
|
lckdir = os.path.join(args.lockdir[0], args.name)
|
||||||
@ -185,20 +181,13 @@ def main():
|
|||||||
resfile = os.path.join(libdir, 'result')
|
resfile = os.path.join(libdir, 'result')
|
||||||
|
|
||||||
success = True
|
success = True
|
||||||
has_lock = True
|
|
||||||
with open(outfile, 'w') as o, open(errfile, 'w+') as e, open(resfile, 'w') as r:
|
with open(outfile, 'w') as o, open(errfile, 'w+') as e, open(resfile, 'w') as r:
|
||||||
if args.no_lock:
|
if args.no_lock or aquire_lock(lckfile):
|
||||||
res = exec_command(args, o, e, r)
|
res = exec_command(args, o, e, r)
|
||||||
else:
|
else:
|
||||||
has_lock = aquire_lock(lckfile)
|
e.write("CRONWRAPPER: Unable to aquire lock, previous instance still running?\n")
|
||||||
if has_lock:
|
r.write("\nFalse\n")
|
||||||
res = exec_command(args, o, e, r)
|
res = False
|
||||||
elif args.restart:
|
|
||||||
res = 0
|
|
||||||
else:
|
|
||||||
e.write("CRONWRAPPER: Unable to aquire lock, previous instance still running?\n")
|
|
||||||
r.write("\nFalse\n")
|
|
||||||
res = False
|
|
||||||
|
|
||||||
if res in args.success_exit_codes:
|
if res in args.success_exit_codes:
|
||||||
# Possible success, check error output
|
# Possible success, check error output
|
||||||
@ -260,8 +249,7 @@ def main():
|
|||||||
print("Cronjob failed\n")
|
print("Cronjob failed\n")
|
||||||
print_runs([libdir], clean=False)
|
print_runs([libdir], clean=False)
|
||||||
|
|
||||||
if has_lock:
|
release_lock(lckfile)
|
||||||
release_lock(lckfile)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
sys.exit(main())
|
sys.exit(main())
|
||||||
|
2
setup.py
2
setup.py
@ -5,7 +5,7 @@ with open('README.md', 'r') as fh:
|
|||||||
|
|
||||||
setuptools.setup(
|
setuptools.setup(
|
||||||
name='cronwrapper',
|
name='cronwrapper',
|
||||||
version='0.1.5',
|
version='0.1.4',
|
||||||
author='Fredrik Eriksson',
|
author='Fredrik Eriksson',
|
||||||
author_email='feffe@fulh.ax',
|
author_email='feffe@fulh.ax',
|
||||||
description='A small wrapper to handle cronjob failures',
|
description='A small wrapper to handle cronjob failures',
|
||||||
|
Loading…
Reference in New Issue
Block a user