diff options
| author | davidovski <david@davidovski.xyz> | 2021-12-07 23:02:43 +0000 | 
|---|---|---|
| committer | davidovski <david@davidovski.xyz> | 2021-12-07 23:02:43 +0000 | 
| commit | 075149bb1c92e3dc5df9fd07feebe60a3c8e4fef (patch) | |
| tree | d9a97bc49b96657629045b29c989610208d54da0 /src | |
| parent | 7887f4d828c0ec15b209afc49f2671e368cb2c70 (diff) | |
fixed issues with getting most popular package
Diffstat (limited to 'src')
| -rw-r--r-- | src/util.py | 7 | ||||
| -rw-r--r-- | src/verbs/install.py | 13 | ||||
| -rw-r--r-- | src/verbs/sync.py | 11 | 
3 files changed, 24 insertions, 7 deletions
| diff --git a/src/util.py b/src/util.py index fcc58f4..c84d7a3 100644 --- a/src/util.py +++ b/src/util.py @@ -10,7 +10,12 @@ DEFAULT_BAR_COLOR = colors.BLACK + colors.BG_CYAN  DEFAULT_BAR_COLOR_RESET = colors.BG_BLACK + colors.CYAN  def extract_tar(package_path, destination): -    os.system(f"tar -h --no-overwrite-dir -xf {package_path} -C {destination}") +    cmd = f"tar -h --no-overwrite-dir -xvf {package_path} -C {destination}" +     +    os.popen(cmd).read() +    with tarfile.open(package_path) as tar: +        return "\n".join(["".join(m.name[1:]) for m in tar.getmembers() if not m.isdir()]) +              def add_path(*argv):      a = argv[0] diff --git a/src/verbs/install.py b/src/verbs/install.py index 2e63dd4..7b6fd7d 100644 --- a/src/verbs/install.py +++ b/src/verbs/install.py @@ -230,12 +230,11 @@ def install_package(package_name, package_path, package_info,      # TODO loading bar here      files = util.extract_tar(package_path, root) -    save_installed_info(package_name, package_info, repo, source_url, key, config, root=root) -    # untar and move into root -    # then add entry in the config["dir"]["installed"] +    save_installed_info(package_name, package_info, files, repo, source_url, key, config, root=root) +      def save_installed_info(package_name, package_info, -        repo, source_url, key,  +        files, repo, source_url, key,           config, root=""):      installed_dir = util.add_path(root, config["dir"]["installed"], package_name)      util.mkdir(installed_dir) @@ -261,6 +260,10 @@ def save_installed_info(package_name, package_info,          file.write(f"URL={package_url}\n")          file.write(f"REPO={repo}\n") +    files_file = util.add_path(installed_dir, "files") +    with open(files_file, "w") as file: +        file.write(files) +      pass  def install_single(package, options, config, verbose=False, unsafe=False): @@ -277,7 +280,7 @@ def install_single(package, options, config, verbose=False, unsafe=False):                  info, package, config,                   verbose=verbose, skip_verification=unsafe) -        install_package(package, package_path, info,  +        files = install_package(package, package_path, info,                   repo, sources[source], key,                  config, root=options["r"]) diff --git a/src/verbs/sync.py b/src/verbs/sync.py index 38a8a39..07ed2ec 100644 --- a/src/verbs/sync.py +++ b/src/verbs/sync.py @@ -47,7 +47,16 @@ def validate_package(package, versions, repo, verbose=False):              popularity[checksum] = 0          popularity[checksum] += 1 -    most_popular = sorted(popularity)[-1] +    most_popular = "" +    p_count = -1 +    for p,c in popularity.items(): +        if c > p_count: +            most_popular = p +            p_count = c + +    if verbose: +        ##print(package, ":", popularity) +        print(most_popular)      sources = [v[1] for v in versions if v[0] == most_popular]      # change the packages dict to list all the sources | 
