Skip to content

Commit a5e4baf

Browse files
authored
Fix the issue for go.work (go 1.18 or later) (#199)
Signed-off-by: jiyeong.seok <[email protected]>
1 parent 4244879 commit a5e4baf

File tree

1 file changed

+10
-0
lines changed
  • src/fosslight_dependency/package_manager

1 file changed

+10
-0
lines changed

src/fosslight_dependency/package_manager/Go.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from bs4 import BeautifulSoup
1111
import urllib.request
1212
import re
13+
import shutil
1314
import fosslight_util.constant as constant
1415
import fosslight_dependency.constant as const
1516
from fosslight_dependency._package_manager import PackageManager, get_url_to_purl
@@ -24,6 +25,8 @@ class Go(PackageManager):
2425
is_run_plugin = False
2526
dn_url = 'https://pkg.go.dev/'
2627
tmp_file_name = 'tmp_go_list.json'
28+
go_work = 'go.work'
29+
tmp_go_work = 'go.work.tmp'
2730

2831
def __init__(self, input_dir, output_dir):
2932
super().__init__(self.package_manager_name, self.dn_url, input_dir, output_dir)
@@ -33,6 +36,8 @@ def __init__(self, input_dir, output_dir):
3336
def __del__(self):
3437
if os.path.isfile(self.tmp_file_name):
3538
os.remove(self.tmp_file_name)
39+
if os.path.isfile(self.tmp_go_work):
40+
shutil.move(self.tmp_go_work, self.go_work)
3641

3742
def parse_dependency_tree(self, go_deptree_txt):
3843
for line in go_deptree_txt.split('\n'):
@@ -49,6 +54,9 @@ def parse_dependency_tree(self, go_deptree_txt):
4954
def run_plugin(self):
5055
ret = True
5156

57+
if os.path.isfile(self.go_work):
58+
shutil.move(self.go_work, self.tmp_go_work)
59+
5260
logger.info("Execute 'go list -m -mod=mod -json all' to obtain package info.")
5361
cmd = f"go list -m -mod=mod -json all > {self.tmp_file_name}"
5462

@@ -64,6 +72,8 @@ def run_plugin(self):
6472
if ret_cmd_tree != 0:
6573
self.parse_dependency_tree(ret_cmd_tree)
6674

75+
if os.path.isfile(self.tmp_go_work):
76+
shutil.move(self.tmp_go_work, self.go_work)
6777
return ret
6878

6979
def parse_oss_information(self, f_name):

0 commit comments

Comments
 (0)