12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- """
- CPM Repositories Tool
- Вспомогательная утилита для управления репозиториями cpm 1.6
- """
- from cpm import Console, Router, Package, load_config, log, save_config
- import sys
- import requests
- class CpmRouterTool(Console):
- '''Вспомогательный класс для управления списом репозиториев.'''
- def __init__(self):
- super(CpmRouterTool, self).__init__()
- self.command(self.info, ["info", "i"],
- "информация о настройках и источниках")
- self.command(self.remove, ["remove", "rm", "r"],
- "[targets] удалить источники из списка")
- self.command(self.add, ["add", "a"],
- "[name url] добавить источник в список")
- def info(self, ctx):
- '''выводит информацию о настройках и источниках.'''
- config = load_config()
- Package('example', config["params"]).print_params()
- print(f'\nrepositores ({len(config["repositories"])}):')
- for k, v in config['repositories'].items():
- print()
- Router(f"cpm/{k}.toml").info()
- def remove(self, ctx):
- '''Удаляет источники из списка'''
- config = load_config()
- for x in ctx:
- if x not in config["repositories"]:
- log(f"{x} нет в списке источников", 'e')
- continue
- del config["repositories"][x]
- log(f"{x} удалёно из списка источников")
- save_config(config)
- def add(self, ctx):
- '''Добавляет источник в список'''
- config = load_config()
- if len(ctx.args) < 2:
- log(f"*.py add [NAME] [URL]")
- return False
- try:
- r = requests.get(ctx.args[1]+"/router.toml")
- except Exception as e:
- log(e, 'e')
- else:
- if r.status_code != 200:
- log(f"{r.status_code}: {ctx.args[1]}")
- return False
- config["repositories"][ctx.args[0]] = {
- "url": ctx.args[1], "last_update": 0}
- save_config(config)
- if __name__ == '__main__':
- CpmRouterTool().process(sys.argv[1:])
|