Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add temporary execute mode for wrapper #241

Merged
merged 1 commit into from
Feb 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions src/fosslight_dependency/_package_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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))
Expand Down Expand Up @@ -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
5 changes: 3 additions & 2 deletions src/fosslight_dependency/package_manager/Maven.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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}")
Expand All @@ -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 = []
Expand Down
Loading