Files
mypkg/mypkg/cli/main.py

47 lines
1.6 KiB
Python

# mypkg/cli/main.py
import argparse
import sys
from ..core.package_manager import PackageManager
from ..utils.colors import print_info, print_package
def main():
parser = argparse.ArgumentParser(
description="My Package Manager - менеджер пакетов для Linux"
)
parser.add_argument('--sandbox', type=str, default=None,
help='Режим песочницы: установка в изолированную директорию')
parser.add_argument('--repo', default='repo',
help='Путь к репозиторию')
subparsers = parser.add_subparsers(dest='command', help='Команды')
install_parser = subparsers.add_parser('install', help='Установить пакет')
install_parser.add_argument('package', help='Имя пакета')
list_parser = subparsers.add_parser('list', help='Список установленных пакетов')
args = parser.parse_args()
if not args.command:
parser.print_help()
sys.exit(1)
pm = PackageManager(repo_path=args.repo, sandbox=args.sandbox)
if args.command == 'install':
pm.install(args.package)
elif args.command == 'list':
packages = pm.list_installed()
if not packages:
print_info("Нет установленных пакетов")
else:
print_package(f"Установленные пакеты ({len(packages)}):")
for pkg in packages:
print(f" {pkg.name} ({pkg.version})")
sys.exit(0)
if __name__ == '__main__':
main()