예제 #1
0
파일: scan.py 프로젝트: vojtechsokol/leapp
def _make_repo_lookup(include_locals):
    data = {}
    for repo_id, entry in get_global_repositories_data().items():
        if entry['enabled']:
            data.update({entry['id']: entry['path']})

    if include_locals:
        # Having it here allows to override global repositories with local ones.
        data.update(get_user_config_repo_data().get('repos', {}))

    return data
예제 #2
0
def health_check(args):
    to_remove = []
    data = get_user_config_repo_data()
    if not data:
        return
    for uuid, path in data.get('repos', {}).items():
        if not os.path.isdir(path):
            print('Removing repository {uuid} => {path}'.format(uuid=uuid,
                                                                path=path))
            to_remove.append(uuid)
    for uuid in to_remove:
        data.get('repos', {}).pop(uuid, None)
    with open(get_user_config_repos(), 'w') as f:
        json.dump(data, f)
예제 #3
0
def list_repos(args):
    global_repos = {}
    if getattr(args, 'global', None) or args.all:
        global_repos = get_global_repositories_data()

    for entry in global_repos.values():
        print('{name:<35} [{uuid}] => {path}'.format(name=entry['name'],
                                                     path=entry['path'],
                                                     uuid=entry['id']))

    if not getattr(args, 'global', None):
        user_repos = get_user_config_repo_data()
        for path in user_repos.get('repos', {}).values():
            if os.path.isdir(path):
                name = get_repository_name(path)
                uuid = get_repository_id(path)
                print('{name:<35} [{uuid}] => {path}'.format(name=name,
                                                             path=path,
                                                             uuid=uuid))
예제 #4
0
def link_repo(args):
    if not any((args.path, args.name, args.uuid)):
        raise UsageError(
            'Please specify either --path, --name or --uuid to link another repository.'
        )
    data = get_user_config_repo_data()
    path = args.path
    if not path:
        if args.uuid:
            path = data.get('repos', {}).get(args.uuid, None)
        elif args.name:
            for repository_path in data.get('repos', {}).values():
                if os.path.isdir(repository_path):
                    if args.name == get_repository_name(repository_path):
                        path = repository_path
                        break
    if not path:
        raise UsageError(
            'Please specify a valid repository name, uuid or path')

    if add_repository_link('.', get_repository_id(path)):
        print('Added link to repository {path} - {name}'.format(
            path=path, name=get_repository_name(path)))