def usage(repo): """Usage: slpkg [COMMANDS|OPTIONS] {repository|package...} Commands: [update, --only=[...]] [upgrade, --only=[...]] [repo-add [repository name] [URL]] [repo-remove [repository]] [repo-enable] [repo-list] [repo-info [repository]] [update [slpkg]] [health, --silent] [deps-status, --tree, --graph=[type]] [new-config] Optional arguments: [-h] [-v] [-a [script] [sources...]] [-b [package...] --add, --remove, [list]] [-q [package...] --add, --remove, [list, build, install, build-install]] [-g [print, edit, reset]] [-l [repository], --index, --installed, --name] [-c [repository], --upgrade, --rebuild, --skip=[...], --resolve-off, --checklist] [-s [repository] [package...], --rebuild, --reinstall, --resolve-off, --download-only, --directory-prefix=[dir], --case-ins, --patches] [-t [repository] [package], --check-deps, --graph=[type], --case-ins] [-p [repository] [package], --color=[]] [-n [SBo package], --checklist, --case-ins] [-F [package...], --case-ins] [-f [package...], --case-ins] [-i [options] [package...]] [-u [options] [package...]] [-r [options] [package...], --deps, --check-deps, --tag, --checklist] [-d [package...]] """ if repo and repo not in _meta_.repositories: error_repo = "" all_repos = RepoList().all_repos.keys() del RepoList().all_repos if repo in all_repos: error_repo = ("slpkg: Error: Repository '{0}' is not activated" "\n".format(repo)) else: error_repo = ("slpkg: Error: Repository '{0}' does not exist" "\n".format(repo)) print("\n" + error_repo) raise SystemExit(1) print(usage.__doc__) print("For more information try 'slpkg -h, --help' or view manpage\n")
def command_repo_info(self): """Repositories informations """ if (len(self.args) == 2 and self.args[0] == "repo-info" and self.args[1] in RepoList().all_repos): del RepoList().all_repos RepoInfo().view(self.args[1]) elif (len(self.args) > 1 and self.args[0] == "repo-info" and self.args[1] not in RepoList().all_repos): usage(self.args[1]) else: usage("")
def command_repo_list(self): """Repositories list """ if len(self.args) == 1 and self.args[0] == "repo-list": RepoList().repos() else: usage("")
def __init__(self): self.form = { "Last updated:": "", "Number of packages:": "", "Repo id:": "", "Default:": "", "Repo url:": "", "Status:": "", "Total compressed packages:": "", "Total uncompressed packages:": "" } self.meta = _meta_ self.all_repos = RepoList().all_repos self.all_repos.update(Repo().custom_repository()) del RepoList().all_repos
def __init__(self): self.form = { "Last updated:": "", "Number of packages:": "", "Repo id:": "", "Default:": "", "Repo url:": "", "Status:": "", "Total compressed packages:": "", "Total uncompressed packages:": "" } self.meta = _meta_ self.all_repos = Repo().default_repository() self.all_repos["slack"] = Repo().slack() self.all_repos.update(Repo().custom_repository()) del RepoList().all_repos
class RepoInfo(object): """Repository information """ def __init__(self): self.form = { "Last updated:": "", "Number of packages:": "", "Repo id:": "", "Default:": "", "Repo url:": "", "Status:": "", "Total compressed packages:": "", "Total uncompressed packages:": "" } self.meta = _meta_ self.all_repos = RepoList().all_repos self.all_repos.update(Repo().custom_repository()) del RepoList().all_repos def view(self, repo): """ View repository information """ status = "{0}disabled{1}".format(self.meta.color["RED"], self.meta.color["ENDC"]) self.form["Status:"] = status self.form["Default:"] = "no" if repo in self.meta.default_repositories: self.form["Default:"] = "yes" if (repo in self.meta.repositories and os.path.isfile(self.meta.lib_path + "{0}_repo/PACKAGES." "TXT".format(repo))): status = "{0}enabled{1}".format(self.meta.color["GREEN"], self.meta.color["ENDC"]) if repo != "sbo": data = self.repository_data(repo) size = units(data[1], data[2]) self.form["Repo id:"] = repo self.form["Repo url:"] = self.all_repos[repo] self.form["Total compressed packages:"] = "{0} {1}".format( str(size[1][0]), str(size[0][0])) self.form["Total uncompressed packages:"] = "{0} {1}".format( str(size[1][1]), str(size[0][1])) self.form["Number of packages:"] = data[0] self.form["Status:"] = status self.form["Last updated:"] = data[3] elif (repo == "sbo" and os.path.isfile(self.meta.lib_path + "{0}_repo/" "SLACKBUILDS.TXT".format(repo))): status = "{0}enabled{1}".format(self.meta.color["GREEN"], self.meta.color["ENDC"]) sum_sbo_pkgs = 0 for line in (Utils().read_file( self.meta.lib_path + "sbo_repo/SLACKBUILDS." "TXT").splitlines()): if line.startswith("SLACKBUILD NAME: "): sum_sbo_pkgs += 1 changelog_txt = Utils().read_file( self.meta.log_path + "sbo/ChangeLog.txt") last_upd = changelog_txt.split("\n", 1)[0] self.form["Repo id:"] = repo self.form["Repo url:"] = self.all_repos[repo] self.form["Total compressed packages:"] = "" self.form["Total uncompressed packages:"] = "" self.form["Number of packages:"] = sum_sbo_pkgs self.form["Status:"] = status self.form["Last updated:"] = last_upd print("") for key, value in sorted(self.form.iteritems()): print self.meta.color["GREY"] + key + self.meta.color["ENDC"], value print("") raise SystemExit() def repository_data(self, repo): """ Grap data packages """ sum_pkgs, size, unsize, last_upd = 0, [], [], "" for line in (Utils().read_file( self.meta.lib_path + repo + "_repo/PACKAGES.TXT").splitlines()): if line.startswith("PACKAGES.TXT;"): last_upd = line[14:].strip() if line.startswith("PACKAGE NAME:"): sum_pkgs += 1 if line.startswith("PACKAGE SIZE (compressed): "): size.append(line[28:-2].strip()) if line.startswith("PACKAGE SIZE (uncompressed): "): unsize.append(line[30:-2].strip()) if repo in ["salix", "slackl"]: log = Utils().read_file( self.meta.log_path + "{0}/ChangeLog.txt".format(repo)) last_upd = log.split("\n", 1)[0] return [sum_pkgs, size, unsize, last_upd]