5
5
import sys
6
6
import logging
7
7
import zipfile
8
+ import uuid
8
9
from zipfile import ZIP_DEFLATED
9
10
10
11
parser = argparse .ArgumentParser ("Take a directory of bdio files, copy and unzip each file,"
@@ -95,14 +96,22 @@ def jsonld_update_project_name(data, name):
95
96
content_array [counter ]["https://blackducksoftware.github.io/bdio#hasName" ][0 ]['@value' ] = name
96
97
logging .debug (content_array [counter ])
97
98
99
+
100
+ def jsonld_update_uuid (data , new_uuid ):
101
+ logging .debug ("Updating jsonld file to new UUID: {}" .format (new_uuid ))
102
+ data .update ({'@id' : new_uuid })
103
+
104
+
98
105
def jsonld_update_version_name_in_header (data , version ):
99
- scan_name_dict = {k :v [0 ].get ('@value' ) for (k ,v ) in data .items () if k == 'https://blackducksoftware.github.io/bdio#hasName' }
106
+ scan_name_dict = {k : v [0 ].get ('@value' ) for (k , v ) in data .items () if
107
+ k == 'https://blackducksoftware.github.io/bdio#hasName' }
100
108
if not scan_name_dict :
101
109
return
102
110
version_link = scan_name_dict .popitem ()[1 ].split ('/' )
103
111
version_link [1 ] = version
104
- version_list = [{'@value' :'/' .join (version_link )}]
105
- data .update ({'https://blackducksoftware.github.io/bdio#hasName' :version_list })
112
+ version_list = [{'@value' : '/' .join (version_link )}]
113
+ data .update ({'https://blackducksoftware.github.io/bdio#hasName' : version_list })
114
+
106
115
107
116
def jsonld_update_project_version (data , version ):
108
117
content_array = data ['@graph' ]
@@ -142,14 +151,16 @@ def bdio_update_project_version():
142
151
os .chdir (temp_dir )
143
152
output_bdio = os .path .join (temp_dir , file )
144
153
jsonld_files = [y for y in os .listdir (temp_dir ) if y .endswith ('.jsonld' )]
154
+ new_uuid = uuid .uuid1 ()
145
155
for jsonld_file in jsonld_files :
146
156
jsonld_path = os .path .join (temp_dir , jsonld_file )
147
157
data = read_json_object (jsonld_path )
148
158
jsonld_update_project_name (data , project_name )
159
+ jsonld_update_uuid (data , "urn:uuid:{}" .format (new_uuid ))
149
160
if jsonld_file .split ('-' )[1 ] == 'header.jsonld' :
150
161
jsonld_update_version_name_in_header (data , target_version )
151
162
else :
152
- jsonld_update_project_version (data ,target_version )
163
+ jsonld_update_project_version (data , target_version )
153
164
write_json_file (jsonld_path , data )
154
165
zip_create_archive (output_bdio , temp_dir )
155
166
shutil .copy (output_bdio , renamed_directory )
@@ -159,7 +170,6 @@ def bdio_update_project_version():
159
170
shutil .rmtree ('temp' )
160
171
161
172
162
-
163
173
def main ():
164
174
check_dirs ()
165
175
bdio_update_project_version ()
0 commit comments