Skip to content
Snippets Groups Projects
config.py 1.28 KiB
Newer Older
gwenael remond's avatar
gwenael remond committed
"""

Lionel Morin's avatar
Lionel Morin committed
Zephir command line configuration parser
gwenael remond's avatar
gwenael remond committed

"""
from pathlib import Path
gwenael remond's avatar
gwenael remond committed
import yaml

Lionel Morin's avatar
Lionel Morin committed
class ZcliConfig:

    filename = '.zephir-config.yaml'
    config_file = Path.home() / filename

    def __init__(self):

        if not ZcliConfig.config_file.exists():
            print("""Attention, le fichier de configuration de zephir-cli est inexistant !""")
            url = input("Entrez l'adresse du serveur Zephir : ")
            version = input("Entrez la version du zephir (defaut: 'v1') : ")
            output = "yaml"
Lionel Morin's avatar
Lionel Morin committed
            if not version:
                version = "v1"
            yaml_template = f"""url: {url}
Lionel Morin's avatar
Lionel Morin committed
version: {version}
output: {output}"""
Lionel Morin's avatar
Lionel Morin committed
            with ZcliConfig.config_file.open("w", encoding ="utf-8") as fh:
                fh.write(yaml_template)
            print("Le fichier de configuration '.zephir-config.yaml' a été généré dans votre répertoire home. ")

        with open(ZcliConfig.config_file, 'r') as stream:
            try:
                config = yaml.load(stream)
            except yaml.YAMLError as exc:
                print("Erreur au moment du chargement du fichier de configuration", exc)
                config = {}

        self.url = config.get('url')
        self.version = config.get('version')
Lionel Morin's avatar
Lionel Morin committed
        self.output = config.get('output')