#! /usr/bin/env python3

import os
import sys

from string import Template
from subprocess import check_call

EXEC       = 'wifi-keepalive.py'
SERVICE    = 'wifi-keepalive.service'
SYSTEM_DIR = '/etc/systemd/system'

CURRENT_DIR      = os.path.dirname(os.path.realpath(__file__))
EXEC_PATH        = os.path.join(CURRENT_DIR, EXEC)
SERVICE_TEMPLATE = os.path.join(CURRENT_DIR, SERVICE)
SERVICE_FILE     = os.path.join(SYSTEM_DIR, SERVICE)
PYTHON           = sys.executable
EXEC_START       = f'{PYTHON} {EXEC}'

with open(SERVICE_TEMPLATE) as f:
    serviceTemplate = Template(f.read())

serviceFile = serviceTemplate.substitute(
    workingDirectory=CURRENT_DIR,
    execStart=EXEC_START
)

with open(SERVICE_FILE, 'w') as f:
    f.write(serviceFile)

check_call(['systemctl', 'daemon-reload'])
check_call(['systemctl', 'enable', '--no-pager', SERVICE])
check_call(['systemctl', 'restart', '--no-pager', SERVICE])
check_call(['systemctl', 'status', '--no-pager', SERVICE])