#!/usr/bin/env python

# internal use only
# check if expire time is set for all artifacts

import os

import yaml

IDF_PATH = os.getenv("IDF_PATH")
if not IDF_PATH:
    print("Please set IDF_PATH before running this script")
    raise SystemExit(-1)

GITLAB_CONFIG_FILE = os.path.join(os.getenv("IDF_PATH"), ".gitlab-ci.yml")


def check_artifacts_expire_time():
    with open(GITLAB_CONFIG_FILE, "r") as f:
        config = yaml.load(f)

    errors = []

    print("expire time for jobs:")

    job_names = list(config.keys())
    job_names.sort()

    for job_name in job_names:

        if job_name.startswith("."):
            # skip ignored jobs
            continue

        try:
            if "expire_in" not in config[job_name]["artifacts"]:
                errors.append(job_name)
            else:
                print("{}: {}".format(job_name, config[job_name]["artifacts"]["expire_in"]))
        except (KeyError, TypeError):
            # this is not job, or the job does not have artifacts
            pass

    if errors:
        print("\n\nThe following jobs did not set expire time for its artifacts")
        for error in errors:
            print(error)
        raise SystemExit(-2)


if __name__ == '__main__':
    check_artifacts_expire_time()
