diff --git a/bin/is b/bin/is index 3a5beb97b81c832de4f1a2bf9352feb8f0559afe..fa117a45d41f2a2141bef6095760bf4c1c42f2f1 100755 --- a/bin/is +++ b/bin/is @@ -253,19 +253,24 @@ def c_move(parser, args): ''' # load repositories repoman = load_repositories(args) - srcrepo = repoman[args.repo_src] - dstrepo = repoman[args.repo_dst] - # load source image - srcimg = srcrepo.get(args.image, args.image_version) - # Advertise - arrow("Copying %s v%s from %s to %s" % (srcimg.name, - srcimg.version, - srcrepo.config.name, - dstrepo.config.name)) - arrowlevel(1) - dstrepo.add(srcimg) - srcrepo.delete(srcimg.name, srcimg.version) - arrowlevel(-1) + dstrepo = repoman[args.repository] + for image in args.image: + srcimg, srcrepo = select_image(image, repoman) + if not args.force: + out("You will move %s v%s from %s to %s" % (srcimg.name, + srcimg.version, + srcrepo.config.name, + dstrepo.config.name)) + if raw_input("Are you sure (yes) " ) != "yes": + raise Exception("Abort") + arrow("Moving %s v%s from %s to %s" % (srcimg.name, + srcimg.version, + srcrepo.config.name, + dstrepo.config.name)) + arrowlevel(1) + dstrepo.add(srcimg) + srcrepo.delete(srcimg.name, srcimg.version) + arrowlevel(-1) def c_new(parser, args): ''' @@ -395,10 +400,10 @@ p_list.set_defaults(func=c_list, subparser=p_list) # move command parser p_move = subparsers.add_parser("move", help=c_move.__doc__.lower()) -p_move.add_argument("repo_src", help="name of source repository") -p_move.add_argument("repo_dst", help="name of destination repository") -p_move.add_argument("image", help="image name") -p_move.add_argument("image_version", nargs="?", help="image version") +p_move.add_argument("-f", "--force", action="store_true", default=False, + help="move image without confirmation") +p_move.add_argument("repository", help="name of destination repository") +p_move.add_argument("image", nargs="+", help="image to move") p_move.set_defaults(func=c_move) # new command parser