diff --git a/src/fosslight_binary/_jar_analysis.py b/src/fosslight_binary/_jar_analysis.py index ad4c35d..57c59cc 100644 --- a/src/fosslight_binary/_jar_analysis.py +++ b/src/fosslight_binary/_jar_analysis.py @@ -6,14 +6,25 @@ import logging import json import os -import subprocess +import sys import fosslight_util.constant as constant from ._binary import BinaryItem, OssItem, VulnerabilityItem +from dependency_check import run as dependency_check_run logger = logging.getLogger(constant.LOGGER_NAME) +def run_analysis(params, func): + try: + sys.argv = params + func() + except SystemExit: + pass + except Exception as ex: + logger.error(f"Run Analysis : {ex}") + + def get_oss_ver(version): oss_version = "" @@ -98,9 +109,11 @@ def analyze_jar_file(path_to_find_bin): vulnerability_items = {} try: - command = f"dependency-check --scan {path_to_find_bin} --out {path_to_find_bin} --disableArchive --disableAssembly --disableRetireJS --disableNodeJS \ - --disableNodeAudit --disableNugetconf --disableNuspec --disableOpenSSL --disableOssIndex --disableBundleAudit -f ALL" - subprocess.run(command, shell=True) + command = ['dependency-check', '--scan', f'{path_to_find_bin}', '--out', f'{path_to_find_bin}', + '--disableArchive', '--disableAssembly', '--disableRetireJS', '--disableNodeJS', + '--disableNodeAudit', '--disableNugetconf', '--disableNuspec', '--disableOpenSSL', + '--disableOssIndex', '--disableBundleAudit', '-f', 'ALL'] + run_analysis(command, dependency_check_run) json_file = os.path.join(path_to_find_bin, 'dependency-check-report.json')