fosslight-dependency 3.12.6__tar.gz → 3.12.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/PKG-INFO +1 -1
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/setup.py +1 -1
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/_analyze_dependency.py +3 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/_package_manager.py +30 -40
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/constant.py +3 -1
- fosslight_dependency-3.12.7/src/fosslight_dependency/package_manager/Helm.py +95 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency.egg-info/PKG-INFO +1 -1
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency.egg-info/SOURCES.txt +1 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/LICENSE +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/LICENSES/Apache-2.0.txt +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/LICENSES/LicenseRef-3rd_party_licenses.txt +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/LICENSES/MIT.txt +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/MANIFEST.in +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/README.md +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/requirements.txt +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/setup.cfg +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/__init__.py +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/_help.py +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/package_manager/Android.py +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/package_manager/Carthage.py +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/package_manager/Cocoapods.py +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/package_manager/Go.py +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/package_manager/Gradle.py +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/package_manager/Maven.py +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/package_manager/Npm.py +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/package_manager/Nuget.py +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/package_manager/Pub.py +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/package_manager/Pypi.py +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/package_manager/Swift.py +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/package_manager/__init__.py +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/run_dependency_scanner.py +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency.egg-info/dependency_links.txt +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency.egg-info/entry_points.txt +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency.egg-info/requires.txt +0 -0
- {fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency.egg-info/top_level.txt +0 -0
@@ -17,6 +17,7 @@ from fosslight_dependency.package_manager.Swift import Swift
|
|
17
17
|
from fosslight_dependency.package_manager.Carthage import Carthage
|
18
18
|
from fosslight_dependency.package_manager.Go import Go
|
19
19
|
from fosslight_dependency.package_manager.Nuget import Nuget
|
20
|
+
from fosslight_dependency.package_manager.Helm import Helm
|
20
21
|
import fosslight_util.constant as constant
|
21
22
|
|
22
23
|
logger = logging.getLogger(constant.LOGGER_NAME)
|
@@ -50,6 +51,8 @@ def analyze_dependency(package_manager_name, input_dir, output_dir, pip_activate
|
|
50
51
|
package_manager = Go(input_dir, output_dir)
|
51
52
|
elif package_manager_name == const.NUGET:
|
52
53
|
package_manager = Nuget(input_dir, output_dir)
|
54
|
+
elif package_manager_name == const.HELM:
|
55
|
+
package_manager = Helm(input_dir, output_dir)
|
53
56
|
else:
|
54
57
|
logger.error(f"Not supported package manager name: {package_manager_name}")
|
55
58
|
ret = False
|
@@ -82,7 +82,6 @@ class PackageManager:
|
|
82
82
|
pass
|
83
83
|
|
84
84
|
def run_gradle_task(self):
|
85
|
-
dependency_tree_fname = 'tmp_dependency_tree.txt'
|
86
85
|
if os.path.isfile(const.SUPPORT_PACKAE.get(self.package_manager_name)):
|
87
86
|
gradle_backup = f'{const.SUPPORT_PACKAE.get(self.package_manager_name)}_bk'
|
88
87
|
|
@@ -91,15 +90,20 @@ class PackageManager:
|
|
91
90
|
if not ret:
|
92
91
|
return
|
93
92
|
|
94
|
-
|
93
|
+
if os.path.isfile('gradlew') or os.path.isfile('gradlew.bat'):
|
94
|
+
if self.platform == const.WINDOWS:
|
95
|
+
cmd_gradle = "gradlew.bat"
|
96
|
+
else:
|
97
|
+
cmd_gradle = "./gradlew"
|
98
|
+
else:
|
99
|
+
return 1
|
100
|
+
cmd = f"{cmd_gradle} allDeps"
|
101
|
+
ret = subprocess.check_output(cmd, shell=True, encoding='utf-8')
|
95
102
|
if ret != 0:
|
103
|
+
self.parse_dependency_tree(ret)
|
104
|
+
else:
|
96
105
|
self.set_direct_dependencies(False)
|
97
106
|
logger.warning("Failed to run allDeps task.")
|
98
|
-
else:
|
99
|
-
self.parse_dependency_tree(dependency_tree_fname)
|
100
|
-
|
101
|
-
if os.path.isfile(dependency_tree_fname):
|
102
|
-
os.remove(dependency_tree_fname)
|
103
107
|
|
104
108
|
if os.path.isfile(gradle_backup):
|
105
109
|
os.remove(const.SUPPORT_PACKAE.get(self.package_manager_name))
|
@@ -128,40 +132,26 @@ class PackageManager:
|
|
128
132
|
|
129
133
|
return ret
|
130
134
|
|
131
|
-
def
|
132
|
-
if os.path.isfile('gradlew') or os.path.isfile('gradlew.bat'):
|
133
|
-
if self.platform == const.WINDOWS:
|
134
|
-
cmd_gradle = "gradlew.bat"
|
135
|
-
else:
|
136
|
-
cmd_gradle = "./gradlew"
|
137
|
-
else:
|
138
|
-
return 1
|
139
|
-
cmd = f"{cmd_gradle} allDeps > {dependency_tree_fname}"
|
140
|
-
|
141
|
-
ret = subprocess.call(cmd, shell=True)
|
142
|
-
return ret
|
143
|
-
|
144
|
-
def parse_dependency_tree(self, f_name):
|
135
|
+
def parse_dependency_tree(self, dependency_tree_fname):
|
145
136
|
config = android_config if self.package_manager_name == 'android' else gradle_config
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
logger.error(f"Failed to parse dependency tree: {e}")
|
137
|
+
packages_in_config = False
|
138
|
+
for line in dependency_tree_fname.split('\n'):
|
139
|
+
try:
|
140
|
+
line_bk = copy.deepcopy(line)
|
141
|
+
if not packages_in_config:
|
142
|
+
filtered = next(filter(lambda c: re.findall(rf'^{c}\s\-', line), config), None)
|
143
|
+
if filtered:
|
144
|
+
packages_in_config = True
|
145
|
+
else:
|
146
|
+
if line == '':
|
147
|
+
packages_in_config = False
|
148
|
+
re_result = re.findall(r'\-\-\-\s([^\:\s]+\:[^\:\s]+)\:([^\:\s]+)', line)
|
149
|
+
if re_result:
|
150
|
+
self.total_dep_list.append(re_result[0][0])
|
151
|
+
if re.match(r'^[\+|\\]\-\-\-\s([^\:\s]+\:[^\:\s]+)\:([^\:\s]+)', line_bk):
|
152
|
+
self.direct_dep_list.append(re_result[0][0])
|
153
|
+
except Exception as e:
|
154
|
+
logger.error(f"Failed to parse dependency tree: {e}")
|
165
155
|
|
166
156
|
|
167
157
|
def version_refine(oss_version):
|
{fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/constant.py
RENAMED
@@ -21,6 +21,7 @@ SWIFT = 'swift'
|
|
21
21
|
CARTHAGE = 'carthage'
|
22
22
|
GO = 'go'
|
23
23
|
NUGET = 'nuget'
|
24
|
+
HELM = 'helm'
|
24
25
|
|
25
26
|
# Supported package name and manifest file
|
26
27
|
SUPPORT_PACKAE = {
|
@@ -34,7 +35,8 @@ SUPPORT_PACKAE = {
|
|
34
35
|
SWIFT: 'Package.resolved',
|
35
36
|
CARTHAGE: 'Cartfile.resolved',
|
36
37
|
GO: 'go.mod',
|
37
|
-
NUGET: ['packages.config', os.path.join('obj', 'project.assets.json')]
|
38
|
+
NUGET: ['packages.config', os.path.join('obj', 'project.assets.json')],
|
39
|
+
HELM: 'Chart.yaml'
|
38
40
|
}
|
39
41
|
|
40
42
|
# default android app name
|
@@ -0,0 +1,95 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# Copyright (c) 2023 LG Electronics Inc.
|
4
|
+
# SPDX-License-Identifier: Apache-2.0
|
5
|
+
|
6
|
+
import os
|
7
|
+
import logging
|
8
|
+
import subprocess
|
9
|
+
import yaml
|
10
|
+
import shutil
|
11
|
+
import fosslight_util.constant as constant
|
12
|
+
import fosslight_dependency.constant as const
|
13
|
+
from fosslight_dependency._package_manager import PackageManager
|
14
|
+
from fosslight_util.download import extract_compressed_dir
|
15
|
+
|
16
|
+
logger = logging.getLogger(constant.LOGGER_NAME)
|
17
|
+
|
18
|
+
|
19
|
+
class Helm(PackageManager):
|
20
|
+
package_manager_name = const.HELM
|
21
|
+
tmp_charts_dir = 'tmp_charts'
|
22
|
+
|
23
|
+
input_file_name = const.SUPPORT_PACKAE.get(package_manager_name)
|
24
|
+
|
25
|
+
def __init__(self, input_dir, output_dir):
|
26
|
+
super().__init__(self.package_manager_name, '', input_dir, output_dir)
|
27
|
+
self.append_input_package_list_file(self.input_file_name)
|
28
|
+
|
29
|
+
def __del__(self):
|
30
|
+
if os.path.exists(self.tmp_charts_dir):
|
31
|
+
shutil.rmtree(self.tmp_charts_dir, ignore_errors=True)
|
32
|
+
|
33
|
+
def run_plugin(self):
|
34
|
+
ret = True
|
35
|
+
charts_dir = 'charts'
|
36
|
+
if os.path.isdir(charts_dir):
|
37
|
+
shutil.copytree(charts_dir, self.tmp_charts_dir)
|
38
|
+
else:
|
39
|
+
logger.info("Execute 'helm dependency build' to obtain package info.")
|
40
|
+
cmd = "helm dependency build"
|
41
|
+
|
42
|
+
ret_cmd = subprocess.call(cmd, shell=True)
|
43
|
+
if ret_cmd != 0:
|
44
|
+
logger.error(f"Failed to build helm dependency: {cmd}")
|
45
|
+
ret = False
|
46
|
+
else:
|
47
|
+
shutil.copytree(charts_dir, self.tmp_charts_dir)
|
48
|
+
shutil.rmtree(charts_dir, ignore_errors=True)
|
49
|
+
|
50
|
+
ret = extract_compressed_dir(self.tmp_charts_dir, self.tmp_charts_dir, False)
|
51
|
+
if not ret:
|
52
|
+
logger.error(f'Fail to extract compressed dir: {self.tmp_charts_dir}')
|
53
|
+
else:
|
54
|
+
logger.warning('Success to extract compressed dir')
|
55
|
+
|
56
|
+
return ret
|
57
|
+
|
58
|
+
def parse_oss_information(self, f_name):
|
59
|
+
dep_item_list = []
|
60
|
+
sheet_list = []
|
61
|
+
|
62
|
+
with open(f_name, 'r', encoding='utf8') as yaml_fp:
|
63
|
+
yaml_f = yaml.safe_load(yaml_fp)
|
64
|
+
for dep in yaml_f['dependencies']:
|
65
|
+
dep_item_list.append(dep['name'])
|
66
|
+
for dep in dep_item_list:
|
67
|
+
try:
|
68
|
+
f_path = os.path.join(self.tmp_charts_dir, dep, f_name)
|
69
|
+
with open(f_path, 'r', encoding='utf8') as yaml_fp:
|
70
|
+
yaml_f = yaml.safe_load(yaml_fp)
|
71
|
+
oss_name = f'{self.package_manager_name}:{yaml_f["name"]}'
|
72
|
+
oss_version = yaml_f.get('version', '')
|
73
|
+
if oss_version.startswith('v'):
|
74
|
+
oss_version = oss_version[1:]
|
75
|
+
|
76
|
+
homepage = yaml_f.get('home', '')
|
77
|
+
dn_loc = ''
|
78
|
+
if yaml_f.get('sources', '') != '':
|
79
|
+
dn_loc = yaml_f.get('sources', '')[0]
|
80
|
+
|
81
|
+
license_name = ''
|
82
|
+
if yaml_f.get('annotations', '') != '':
|
83
|
+
license_name = yaml_f['annotations'].get('licenses', '')
|
84
|
+
|
85
|
+
if self.direct_dep:
|
86
|
+
comment = 'direct'
|
87
|
+
|
88
|
+
except Exception as e:
|
89
|
+
logging.warning(f"Fail to parse chart info {dep}: {e}")
|
90
|
+
continue
|
91
|
+
|
92
|
+
sheet_list.append([const.SUPPORT_PACKAE.get(self.package_manager_name),
|
93
|
+
oss_name, oss_version, license_name, dn_loc, homepage, '', '', comment])
|
94
|
+
|
95
|
+
return sheet_list
|
@@ -24,6 +24,7 @@ src/fosslight_dependency/package_manager/Carthage.py
|
|
24
24
|
src/fosslight_dependency/package_manager/Cocoapods.py
|
25
25
|
src/fosslight_dependency/package_manager/Go.py
|
26
26
|
src/fosslight_dependency/package_manager/Gradle.py
|
27
|
+
src/fosslight_dependency/package_manager/Helm.py
|
27
28
|
src/fosslight_dependency/package_manager/Maven.py
|
28
29
|
src/fosslight_dependency/package_manager/Npm.py
|
29
30
|
src/fosslight_dependency/package_manager/Nuget.py
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/__init__.py
RENAMED
File without changes
|
{fosslight_dependency-3.12.6 → fosslight_dependency-3.12.7}/src/fosslight_dependency/_help.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|