Skip to content
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
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ In this user guide, you can see how to install the FOSSLight Dependency Scanner
</thead>
<tbody>
<tr>
<td rowspan="2">Javascript</td>
<td rowspan="3">Javascript</td>
<td>Npm</td>
<td>package.json</td>
<td>O</td>
Expand All @@ -44,6 +44,13 @@ In this user guide, you can see how to install the FOSSLight Dependency Scanner
<td>O</td>
<td>O</td>
<td>O</td>
</tr>
<tr>
<td>Yarn</td>
<td>package.json</td>
<td>O</td>
<td>O</td>
<td>O</td>
</tr>
<tr>
<td rowspan="2">Java</td>
Expand Down
2 changes: 1 addition & 1 deletion src/fosslight_dependency/_analyze_dependency.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def analyze_dependency(package_manager_name, input_dir, output_dir, pip_activate

if package_manager_name == const.PYPI:
package_manager = Pypi(input_dir, output_dir, pip_activate_cmd, pip_deactivate_cmd)
elif package_manager_name == const.NPM:
elif package_manager_name == const.NPM or package_manager_name == const.YARN:
package_manager = Npm(input_dir, output_dir)
elif package_manager_name == const.MAVEN:
package_manager = Maven(input_dir, output_dir, output_custom_dir)
Expand Down
3 changes: 2 additions & 1 deletion src/fosslight_dependency/_help.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
Maven (Java)
NPM (Node.js)
PNPM (Node.js)
Yarn (Node.js)
PIP (Python)
Pub (Dart with flutter)
Cocoapods (Swift/Obj-C)
Expand All @@ -33,7 +34,7 @@
-v\t\t\t\t Print the version of the script.
-m <package_manager>\t Enter the package manager.
\t(npm, maven, gradle, pypi, pub, cocoapods, android, swift, carthage,
\t go, nuget, helm, unity, cargo, pnpm)
\t go, nuget, helm, unity, cargo, pnpm, yarn)
-p <input_path>\t\t Enter the path where the script will be run.
-e <exclude_path>\t\t Enter the path where the analysis will not be performed.
-o <output_path>\t\t Output path
Expand Down
1 change: 1 addition & 0 deletions src/fosslight_dependency/constant.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
UNITY = 'unity'
CARGO = 'cargo'
PNPM = 'pnpm'
YARN = 'yarn'

# Supported package name and manifest file
SUPPORT_PACKAE = {
Expand Down
10 changes: 8 additions & 2 deletions src/fosslight_dependency/package_manager/Npm.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,14 @@ def start_license_checker(self):
self.flag_tmp_node_modules = True
cmd_ret = subprocess.call(npm_install_cmd, shell=True)
if cmd_ret != 0:
logger.error(f"{npm_install_cmd} returns an error")
return False
logger.warning(f"{npm_install_cmd} returns an error. Trying yarn as fallback...")
yarn_install_cmd = 'yarn install --production --ignore-scripts'
cmd_ret = subprocess.call(yarn_install_cmd, shell=True)
if cmd_ret != 0:
logger.error(f"Both {npm_install_cmd} and {yarn_install_cmd} failed")
return False
else:
logger.info(f"Successfully executed {yarn_install_cmd}")

# customized json file for obtaining specific items with license-checker
self.make_custom_json(self.tmp_custom_json)
Expand Down
4 changes: 3 additions & 1 deletion src/fosslight_dependency/run_dependency_scanner.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,9 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
autodetect = True
found_package_manager = {}
if package_manager:
scan_item.set_cover_comment(f"Manual detect mode (-m {package_manager})")
if package_manager == const.YARN:
package_manager = const.NPM
autodetect = False
support_packagemanager = list(const.SUPPORT_PACKAE.keys())

Expand All @@ -221,7 +224,6 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
manifest_file_name.extend(value)
else:
manifest_file_name.append(value)
scan_item.set_cover_comment(f"Manual detect mode (-m {package_manager})")
else:
manifest_file_name = []

Expand Down
Loading