From 535433bcdd49f16daf8cf65873d9e8ba5cc0bd38 Mon Sep 17 00:00:00 2001 From: Alexei Znamensky Date: Wed, 30 Jul 2025 17:26:21 +1200 Subject: [PATCH] APK_PATH itself should be a list not a string --- plugins/modules/apk.py | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/plugins/modules/apk.py b/plugins/modules/apk.py index 03087acf2a..f0eefdbe1b 100644 --- a/plugins/modules/apk.py +++ b/plugins/modules/apk.py @@ -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']: