ok
Direktori : /opt/cloudlinux/venv/lib/python3.11/site-packages/clflags/ |
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/clflags/gather.py |
# # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT import glob import os.path from dataclasses import dataclass from typing import List import yaml from clflags.config import DEFAULT_FLAGS_STORAGE_PATH, DEFAULT_META_STORAGE_PATH, DEFAULT_FLAG_GLOB @dataclass class FlagInfo: name: str description: str path: str @property def enabled(self): return os.path.isfile(self.path) def __hash__(self): return hash(self.name) def list_flags_info() -> List[FlagInfo]: """ Gathers information about flags from DEFAULT_META_STORAGE_PATH and returns them in python-frienly sturcture. """ meta_files = [] storage_glob = os.path.join(DEFAULT_META_STORAGE_PATH, DEFAULT_FLAG_GLOB) for meta_file in glob.glob(storage_glob): with open(meta_file, encoding='utf-8') as f: metadata = yaml.load(f.read(), Loader=yaml.SafeLoader) flag_name = os.path.basename(meta_file) default_flag_path = os.path.join(DEFAULT_FLAGS_STORAGE_PATH, flag_name) meta_files.append(FlagInfo( name=flag_name.rsplit('.')[-2], description=metadata['description'], path=metadata.get('path', default_flag_path) )) return meta_files