diff options
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 |