@@ -175,6 +175,8 @@ def create_and_add_child_projects(version, args):
175175 tag = next (i ,'latest' )
176176 container_spec = f"{ repo } :{ tag } "
177177 scan_param = {'image' : container_spec , 'project' : child , 'version' : args .version_name }
178+ if args .clone_from :
179+ scan_param ['clone_from' ] = args .clone_from
178180 project = find_project_by_name (child )
179181 if project :
180182 version = find_project_version_by_name (project ,args .version_name )
@@ -207,16 +209,20 @@ def create_project_structure(args):
207209def scan_container_images (scan_params ):
208210 from scan_docker_image_lite import scan_container_image
209211 for params in scan_params :
212+ detect_options = (f"--detect.parent.project.name={ params ['project' ]} "
213+ f"--detect.parent.project.version.name={ params ['version' ]} "
214+ f"--detect.project.version.nickname={ params ['image' ]} " )
215+ clone_from = params .get ('clone_from' , None )
216+ if clone_from :
217+ detect_options += f" --detect.clone.project.version.name={ clone_from } "
210218 scan_container_image (
211219 params ['image' ],
212220 None ,
213221 None ,
214222 None ,
215223 params ['project' ],
216224 params ['version' ],
217- (f"--detect.parent.project.name={ params ['project' ]} "
218- f"--detect.parent.project.version.name={ params ['version' ]} "
219- f"--detect.project.version.nickname={ params ['image' ]} " )
225+ detect_options
220226 )
221227
222228
@@ -231,6 +237,7 @@ def parse_command_args():
231237 parser .add_argument ("-sp" , "--subproject-list" , required = False , help = "List of subprojects to generate with subproject:container:tag" )
232238 parser .add_argument ("-nv" , "--no-verify" , action = 'store_false' , help = "Disable TLS certificate verification" )
233239 parser .add_argument ("-rm" , "--remove" , action = 'store_true' , required = False , help = "Remove project structure with all subprojects (DANGEROUS!)" )
240+ parser .add_argument ("--clone-from" , required = False , help = "Main project version to use as template for cloning" )
234241 parser .add_argument ("--dry-run" , action = 'store_true' , required = False , help = "Create structure only, do not execute scans" )
235242 return parser .parse_args ()
236243
0 commit comments