@@ -82,7 +82,6 @@ def parse_direct_dependencies(self):
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 @@ def run_gradle_task(self):
91
90
if not ret :
92
91
return
93
92
94
- ret = self .exeucte_gradle_task (dependency_tree_fname )
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 @@ def add_allDeps_in_gradle(self):
128
132
129
133
return ret
130
134
131
- def exeucte_gradle_task (self , dependency_tree_fname ):
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
- with open (f_name , 'r' , encoding = 'utf8' ) as input_fp :
147
- packages_in_config = False
148
- for i , line in enumerate (input_fp .readlines ()):
149
- try :
150
- line_bk = copy .deepcopy (line )
151
- if not packages_in_config :
152
- filtered = next (filter (lambda c : re .findall (rf'^{ c } \s\-' , line ), config ), None )
153
- if filtered :
154
- packages_in_config = True
155
- else :
156
- if line == '' :
157
- packages_in_config = False
158
- re_result = re .findall (r'\-\-\-\s([^\:\s]+\:[^\:\s]+)\:([^\:\s]+)' , line )
159
- if re_result :
160
- self .total_dep_list .append (re_result [0 ][0 ])
161
- if re .match (r'^[\+|\\]\-\-\-\s([^\:\s]+\:[^\:\s]+)\:([^\:\s]+)' , line_bk ):
162
- self .direct_dep_list .append (re_result [0 ][0 ])
163
- except Exception as e :
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 ):
0 commit comments