From 3312a5c0159af00e0ba3ce9097e103b47dd77969 Mon Sep 17 00:00:00 2001 From: "jiyeong.seok" Date: Fri, 14 Feb 2025 14:22:19 +0900 Subject: [PATCH] Add temporary execute mode for wrapper Signed-off-by: jiyeong.seok --- src/fosslight_dependency/_package_manager.py | 18 ++++++++++++++++++ .../package_manager/Maven.py | 5 +++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/fosslight_dependency/_package_manager.py b/src/fosslight_dependency/_package_manager.py index 2c2c43f7..d6b520f2 100644 --- a/src/fosslight_dependency/_package_manager.py +++ b/src/fosslight_dependency/_package_manager.py @@ -11,6 +11,7 @@ import base64 import subprocess import shutil +import stat import fosslight_util.constant as constant import fosslight_dependency.constant as const from packageurl.contrib import url2purl @@ -116,6 +117,7 @@ def run_gradle_task(self): if ret_plugin: logger.warning('Also it cannot run android-dependency-scanning plugin.') if ret_task: + current_mode = change_file_mode(cmd_gradle) if ret_alldeps: cmd = f"{cmd_gradle} allDeps" try: @@ -145,6 +147,7 @@ def run_gradle_task(self): except Exception as e: logger.error(f'Fail to run {cmd}: {e}') ret_task = False + change_file_mode(cmd_gradle, current_mode) if os.path.isfile(gradle_backup): os.remove(const.SUPPORT_PACKAE.get(self.package_manager_name)) @@ -422,3 +425,18 @@ def check_and_run_license_scanner(platform, license_scanner_bin, file_dir): license_name = "" return license_name + + +def change_file_mode(filepath, mode=''): + current_mode = os.stat(filepath).st_mode + + if not os.path.exists(filepath): + logger.debug(f"The file{filepath} does not exist.") + else: + if not mode: + new_mode = current_mode | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH + else: + new_mode = mode + os.chmod(filepath, new_mode) + logger.debug(f"File mode of {filepath} has been changed to {oct(new_mode)}.") + return current_mode diff --git a/src/fosslight_dependency/package_manager/Maven.py b/src/fosslight_dependency/package_manager/Maven.py index f9d97331..1fbf317a 100644 --- a/src/fosslight_dependency/package_manager/Maven.py +++ b/src/fosslight_dependency/package_manager/Maven.py @@ -13,7 +13,7 @@ import fosslight_util.constant as constant import fosslight_dependency.constant as const from fosslight_dependency._package_manager import PackageManager -from fosslight_dependency._package_manager import version_refine, get_url_to_purl +from fosslight_dependency._package_manager import version_refine, get_url_to_purl, change_file_mode from fosslight_dependency.dependency_item import DependencyItem, change_dependson_to_purl from fosslight_util.oss_item import OssItem @@ -142,7 +142,7 @@ def run_maven_plugin(self): else: cmd_mvn = "mvn" cmd = f"{cmd_mvn} license:aggregate-download-licenses" - + current_mode = change_file_mode(cmd_mvn) ret = subprocess.call(cmd, shell=True) if ret != 0: logger.error(f"Failed to run maven plugin: {cmd}") @@ -159,6 +159,7 @@ def run_maven_plugin(self): except Exception as e: logger.error(f"Failed to run '{cmd}': {e}") self.set_direct_dependencies(False) + change_file_mode(cmd_mvn, current_mode) def create_dep_stack(self, dep_line): dep_stack = []