Loading bin/is +17 −5 Original line number Diff line number Diff line Loading @@ -37,8 +37,7 @@ def load_repositories(args): args.cache = None # split filter in list if args.repo_filter is not None: args.repo_filter = [f for f in re.split("[ ,\n\t\v]+", args.repo_filter) if f != ""] args.repo_filter = split_repositories(args.repo_filter) # init repo cache object repoman = RepositoryManager(args.cache, timeout=args.timeout, filter=args.repo_filter) # register repositories (order matter) Loading @@ -55,6 +54,14 @@ def load_repositories(args): offline=hasattr(args, "force_offline") and args.force_offline) return repoman def split_repositories(repos, filter=None): ''' Return a list of repository from an comma/space separated list of repo ''' if filter is None: filter = lambda x: x != "" return [r for r in re.split("[ ,\n\t\v]+", repos) if filter(r)] def select_image(name, repoman, best=False): ''' Select and load a package image from a standard naming type Loading @@ -77,8 +84,8 @@ def select_image(name, repoman, best=False): if repo is None: # split search path as a list if args.repo_search is not None: args.repo_search = [s for s in re.split("[ ,\n\t\v]+", args.repo_search) if s in repoman.onlines] args.repo_search = split_repositories(args.repo_search, lambda x: x in repoman.onlines) else: args.repo_search = [] # if we have only one repo, search in it Loading Loading @@ -285,8 +292,11 @@ def c_list(parser, args): List images in repository or image content ''' repoman = load_repositories(args) if args.search is not None: args.search = split_repositories(args.repo_search, lambda x: x in repoman.onlines) for pattern in args.image: repoman.show_images(pattern, all_version=args.all_version, o_long=args.long, o_json=args.json, repoman.show_images(pattern, all_version=args.all_version, search=args.search, o_long=args.long, o_json=args.json, o_md5=args.md5, o_date=args.date, o_author=args.author, o_size=args.size, o_url=args.url, o_description=args.description) Loading Loading @@ -560,6 +570,8 @@ p_list.add_argument("-s", "--size", action="store_true", default=False, help="display image size") p_list.add_argument("-u", "--url", action="store_true", default=False, help="display image url") p_list.add_argument("-S", "--search", action="store_true", default=None, help="only list image in search path") p_list.add_argument("image", nargs="*", default=['*'], help="image syntax is [repository/]image[:version]") p_list.set_defaults(func=c_list) Loading completion/bash/is +1 −1 Original line number Diff line number Diff line Loading @@ -127,7 +127,7 @@ _is() { (( args > 2 )) && _filedir ;; list) [[ "$cur" == -* ]] && _opt '-h --help -l --long -j --json -m --md5 -s --size -d --date -a --all-version -A --author -u --url -D --description --no-sync' && return 0 [[ "$cur" == -* ]] && _opt '-h --help -l --long -j --json -m --md5 -s --size -d --date -a --all-version -A --author -u --url -D --description -S --search --no-sync' && return 0 _remote_image ;; move) Loading installsystems/repository.py +7 −4 Original line number Diff line number Diff line Loading @@ -597,13 +597,15 @@ class RepositoryManager(object): ''' return [ r.config.name for r in self.repos if r.config.offline ] def images(self, pattern, all_version=True): def images(self, pattern, all_version=True, search=None): ''' Return a list of available images ''' if search is None: search = self.onlines # building image list images = {} for reponame in self.onlines: for reponame in search: for img in self[reponame].images(): imgname = u"%s/%s:%s" % (reponame, img["name"], img["version"]) images[imgname] = img Loading Loading @@ -686,7 +688,8 @@ class RepositoryManager(object): s += " (%s)" % repo.config.path out(s) def show_images(self, pattern, all_version=True, o_json=False, o_long=False, def show_images(self, pattern, all_version=True, search=None, o_json=False, o_long=False, o_md5=False, o_date=False, o_author=False, o_size=False, o_url=False, o_description=False): ''' Loading @@ -696,7 +699,7 @@ class RepositoryManager(object): all images parameter can be given in arguments to displayed ''' # get image list images = self.images(pattern, all_version) images = self.images(pattern, all_version, search) # display result if o_json: s = json.dumps(images) Loading Loading
bin/is +17 −5 Original line number Diff line number Diff line Loading @@ -37,8 +37,7 @@ def load_repositories(args): args.cache = None # split filter in list if args.repo_filter is not None: args.repo_filter = [f for f in re.split("[ ,\n\t\v]+", args.repo_filter) if f != ""] args.repo_filter = split_repositories(args.repo_filter) # init repo cache object repoman = RepositoryManager(args.cache, timeout=args.timeout, filter=args.repo_filter) # register repositories (order matter) Loading @@ -55,6 +54,14 @@ def load_repositories(args): offline=hasattr(args, "force_offline") and args.force_offline) return repoman def split_repositories(repos, filter=None): ''' Return a list of repository from an comma/space separated list of repo ''' if filter is None: filter = lambda x: x != "" return [r for r in re.split("[ ,\n\t\v]+", repos) if filter(r)] def select_image(name, repoman, best=False): ''' Select and load a package image from a standard naming type Loading @@ -77,8 +84,8 @@ def select_image(name, repoman, best=False): if repo is None: # split search path as a list if args.repo_search is not None: args.repo_search = [s for s in re.split("[ ,\n\t\v]+", args.repo_search) if s in repoman.onlines] args.repo_search = split_repositories(args.repo_search, lambda x: x in repoman.onlines) else: args.repo_search = [] # if we have only one repo, search in it Loading Loading @@ -285,8 +292,11 @@ def c_list(parser, args): List images in repository or image content ''' repoman = load_repositories(args) if args.search is not None: args.search = split_repositories(args.repo_search, lambda x: x in repoman.onlines) for pattern in args.image: repoman.show_images(pattern, all_version=args.all_version, o_long=args.long, o_json=args.json, repoman.show_images(pattern, all_version=args.all_version, search=args.search, o_long=args.long, o_json=args.json, o_md5=args.md5, o_date=args.date, o_author=args.author, o_size=args.size, o_url=args.url, o_description=args.description) Loading Loading @@ -560,6 +570,8 @@ p_list.add_argument("-s", "--size", action="store_true", default=False, help="display image size") p_list.add_argument("-u", "--url", action="store_true", default=False, help="display image url") p_list.add_argument("-S", "--search", action="store_true", default=None, help="only list image in search path") p_list.add_argument("image", nargs="*", default=['*'], help="image syntax is [repository/]image[:version]") p_list.set_defaults(func=c_list) Loading
completion/bash/is +1 −1 Original line number Diff line number Diff line Loading @@ -127,7 +127,7 @@ _is() { (( args > 2 )) && _filedir ;; list) [[ "$cur" == -* ]] && _opt '-h --help -l --long -j --json -m --md5 -s --size -d --date -a --all-version -A --author -u --url -D --description --no-sync' && return 0 [[ "$cur" == -* ]] && _opt '-h --help -l --long -j --json -m --md5 -s --size -d --date -a --all-version -A --author -u --url -D --description -S --search --no-sync' && return 0 _remote_image ;; move) Loading
installsystems/repository.py +7 −4 Original line number Diff line number Diff line Loading @@ -597,13 +597,15 @@ class RepositoryManager(object): ''' return [ r.config.name for r in self.repos if r.config.offline ] def images(self, pattern, all_version=True): def images(self, pattern, all_version=True, search=None): ''' Return a list of available images ''' if search is None: search = self.onlines # building image list images = {} for reponame in self.onlines: for reponame in search: for img in self[reponame].images(): imgname = u"%s/%s:%s" % (reponame, img["name"], img["version"]) images[imgname] = img Loading Loading @@ -686,7 +688,8 @@ class RepositoryManager(object): s += " (%s)" % repo.config.path out(s) def show_images(self, pattern, all_version=True, o_json=False, o_long=False, def show_images(self, pattern, all_version=True, search=None, o_json=False, o_long=False, o_md5=False, o_date=False, o_author=False, o_size=False, o_url=False, o_description=False): ''' Loading @@ -696,7 +699,7 @@ class RepositoryManager(object): all images parameter can be given in arguments to displayed ''' # get image list images = self.images(pattern, all_version) images = self.images(pattern, all_version, search) # display result if o_json: s = json.dumps(images) Loading