#!/usr/bin/env python3

from os.path import getmtime, isfile
from sys import exit
from time import time

statusfile = '/var/tmp/backup.monitoring'
if not isfile(statusfile):
    print('Status file not found')
    exit(3)

mtime = getmtime(statusfile)
now = time()

if now-mtime > 60*60*24*2:
    print('Status file is older than 2 days!')
    exit(3)

with open(statusfile, 'r') as f:
    status = f.read().splitlines()

exitcode = status[0].strip()

if exitcode == 'ok':
    print('OK')
    exit(0)
elif exitcode == 'rsync_error':
    print('rsync produced some errors, exit codes were:')
    for line in status[1:]:
        print(line)
    exit(2)
elif exitcode == 'hook':
    print('run-parts /etc/backup-pre-hook.d failed with exit code {}'.format(status[1]))
    exit(2)
elif exitcode == 'abort_no_key':
    print('no ssh key found in /etc/backup.priv!')
    exit(1)
else:
    # garbage in file
    for line in status:
        print(line)
    exit(3)