APK_PATH itself should be a list not a string

This commit is contained in:
Alexei Znamensky 2025-07-30 17:26:21 +12:00
commit 535433bcdd

View file

@ -184,7 +184,7 @@ def parse_for_packages(stdout):
def update_package_db(module, exit):
cmd = [APK_PATH, "update"]
cmd = APK_PATH + ["update"]
rc, stdout, stderr = module.run_command(cmd, check_rc=False)
if rc != 0:
module.fail_json(msg="could not update package db", stdout=stdout, stderr=stderr)
@ -207,7 +207,7 @@ def query_toplevel(module, name, world):
def query_package(module, name):
cmd = [APK_PATH, "-v", "info", "--installed", name]
cmd = APK_PATH + ["-v", "info", "--installed", name]
rc, stdout, stderr = module.run_command(cmd, check_rc=False)
if rc == 0:
return True
@ -216,7 +216,7 @@ def query_package(module, name):
def query_latest(module, name):
cmd = [APK_PATH, "version", name]
cmd = APK_PATH + ["version", name]
rc, stdout, stderr = module.run_command(cmd, check_rc=False)
search_pattern = r"(%s)-[\d\.\w]+-[\d\w]+\s+(.)\s+[\d\.\w]+-[\d\w]+\s+" % (re.escape(name))
match = re.search(search_pattern, stdout)
@ -226,7 +226,7 @@ def query_latest(module, name):
def query_virtual(module, name):
cmd = [APK_PATH, "-v", "info", "--description", name]
cmd = APK_PATH + ["-v", "info", "--description", name]
rc, stdout, stderr = module.run_command(cmd, check_rc=False)
search_pattern = r"^%s: virtual meta package" % (re.escape(name))
if re.search(search_pattern, stdout):
@ -235,7 +235,7 @@ def query_virtual(module, name):
def get_dependencies(module, name):
cmd = [APK_PATH, "-v", "info", "--depends", name]
cmd = APK_PATH + ["-v", "info", "--depends", name]
rc, stdout, stderr = module.run_command(cmd, check_rc=False)
dependencies = stdout.split()
if len(dependencies) > 1:
@ -246,9 +246,9 @@ def get_dependencies(module, name):
def upgrade_packages(module, available):
if module.check_mode:
cmd = [APK_PATH, "upgrade", "--simulate"]
cmd = APK_PATH + ["upgrade", "--simulate"]
else:
cmd = [APK_PATH, "upgrade"]
cmd = APK_PATH + ["upgrade"]
if available:
cmd.append("--available")
rc, stdout, stderr = module.run_command(cmd, check_rc=False)
@ -284,14 +284,14 @@ def install_packages(module, names, state, world):
packages = " ".join(to_install + to_upgrade)
if upgrade:
if module.check_mode:
cmd = [APK_PATH, "add", "--upgrade", "--simulate", packages]
cmd = APK_PATH + ["add", "--upgrade", "--simulate", packages]
else:
cmd = [APK_PATH, "add", "--upgrade", packages]
cmd = APK_PATH + ["add", "--upgrade", packages]
else:
if module.check_mode:
cmd = [APK_PATH, "add", "--simulate", packages]
cmd = APK_PATH + ["add", "--simulate", packages]
else:
cmd = [APK_PATH, "add", packages]
cmd = APK_PATH + ["add", packages]
rc, stdout, stderr = module.run_command(cmd, check_rc=False)
packagelist = parse_for_packages(stdout)
if rc != 0:
@ -308,9 +308,9 @@ def remove_packages(module, names):
module.exit_json(changed=False, msg="package(s) already removed")
names = " ".join(installed)
if module.check_mode:
cmd = [APK_PATH, "del", "--purge", "--simulate", names]
cmd = APK_PATH + ["del", "--purge", "--simulate", names]
else:
cmd = [APK_PATH, "del", "--purge", names]
cmd = APK_PATH + ["del", "--purge", names]
rc, stdout, stderr = module.run_command(cmd, check_rc=False)
packagelist = parse_for_packages(stdout)
# Check to see if packages are still present because of dependencies
@ -347,7 +347,7 @@ def main():
module.run_command_environ_update = dict(LANG='C', LC_ALL='C', LC_MESSAGES='C', LC_CTYPE='C')
global APK_PATH
APK_PATH = module.get_bin_path('apk', required=True)
APK_PATH = [module.get_bin_path('apk', required=True)]
p = module.params
@ -355,12 +355,12 @@ def main():
module.fail_json(msg="Package name(s) cannot be empty or whitespace-only")
if p['no_cache']:
APK_PATH = "%s --no-cache" % (APK_PATH, )
APK_PATH.append("--no-cache")
# add repositories to the APK_PATH
if p['repository']:
for r in p['repository']:
APK_PATH = "%s --repository %s --repositories-file /dev/null" % (APK_PATH, r)
APK_PATH.extend(["--repository", r, "--repositories-file", "/dev/null"])
# normalize the state parameter
if p['state'] in ['present', 'installed']: