#!/opt/alt/python37/bin/python3 -bb
# -*- coding: utf-8 -*-
"""
This script used for apply cpanel package changes to lve config
"""
from __future__ import print_function
from __future__ import division
from __future__ import absolute_import
import os
import sys
import time

from clcommon.utils import is_root_or_exit

import cldetectlib as detect
import lvectllib

PKG_DIR = "/var/cpanel/packages"
LVE_CONFIG = "/etc/container/ve.cfg"
LIBDIR = "/usr/share/l.v.e-manager/cpanel/lib"
SCRIPT_NAME = __file__.split("/")[-1]

sys.path.append(LIBDIR)
from packages import save_package
from clcommon.lib.cledition import lve_supported_or_exit


@lve_supported_or_exit
def main():
    is_root_or_exit()
    if detect.is_cpanel():
        try:
            lvectllib.init()
            lvectllib.get_XML_cfg()
        except Exception as e:
            sys.stderr.write('Error while executing ' + SCRIPT_NAME + ': ' + str(e)+'\n')
            sys.exit(1)

        minute_before = time.time() - 60.0 * 5
        lve_mtime = os.path.getmtime(LVE_CONFIG)
        for pkg_name in os.listdir(PKG_DIR):
            file_path = os.path.join(PKG_DIR, pkg_name)
            if not os.path.isfile(file_path):
                continue

            mtime = os.path.getmtime(file_path)
            if mtime > minute_before or mtime > lve_mtime:
                save_package(pkg_name)


if "__main__" == __name__:
    main()
