Skip to content

Commit 6903228

Browse files
committed
cloning
1 parent 1379dbd commit 6903228

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

examples/client/multi-image/manage_project_structure.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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):
207209
def 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

Comments
 (0)