#!/usr/bin/python3

import os
import sys
import time
import psutil


def s2dhms(sec):
    s = ""
    intervals = (
        ('d', 86400),
        ('h', 3600),
        ('m', 60),
        ('s', 1)
    )

    for suffix, num in intervals:
        if sec > num:
            c = int(sec / num)
            s += "{}{} ".format(c, suffix)
            sec -= c * num
    return s


if len(sys.argv) == 1:
    method = 'info'
else:
    method = sys.argv[1]

if method == 'info':
    info = {
        'Protocol': '0.1',
        'Description': 'Load average',
        'Version': '0.1',
        'Methods': 'check info'
    }
    for k, v in info.items():
        print("{}: {}".format(k, v))

elif method == 'check':
    # read parameters
    prefix = os.getenv('PREFIX')
    basename = os.getenv('BASENAME')

    bt = int(psutil.boot_time())
    now = int(time.time())
    uptime = now - bt
    details = s2dhms(uptime)

    print("NAME: {}{}".format(prefix, basename))
    print("TAGS: uptime")
    print("DETAILS: {}".format(details))
    print("METHOD: numerical|diffmin=0")
    print("STATUS: {}".format(uptime))

elif method=='makeconfig':
    data="""
#
# Env configurational file for 'la' check
#

# value which triggers alert
MAXLIM=2

# Period is one of 1, 5, 15
PERIOD=15

# Policy if not default
POLICY=
""".strip()

    print(data)