diff --git a/bin/is b/bin/is index e414eb66113315fad4443de6810287e5ca43127d..0f196637400c6ab33a954e67626e5cd0ac7e76f3 100755 --- a/bin/is +++ b/bin/is @@ -180,6 +180,26 @@ def c_list(parser, args): arrow("Image %s v%s" % (pkg.name, pkg.version)) pkg.show(verbose=args.detail) +def c_update(parser, args): + ''' + Build and update image on repo + ''' + c_build(parser, args) + simg = SourceImage(args.path) + + repoman = load_repositories(args) + if len(repoman) == 0: + raise Exception("No repository selected") + elif len(repoman) > 1: + raise Exception("Please select only one repository") + repo = repoman[0] + image = simg.description["name"] + version = simg.description["version"] + if repo.has(image, version): + repo.delete(image, version) + pkg = PackageImage(simg.image_name) + repo.add(pkg, delete=not args.preserve) + def c_cat(parser, args): ''' Display image's file(s) @@ -297,6 +317,17 @@ p_install.add_argument("-v", "--image-version", type=int, default=None, p_install.add_argument("image", help="image to install (path or name)") p_install.set_defaults(func=c_install, subparser=p_install) +# update command parser +p_update = subparsers.add_parser("update", help=c_update.__doc__.lower()) +p_update.add_argument('-f', "--force", action="store_true", default=False, + help="overwrite existing image") +p_update.add_argument('-c', "--no-check", action="store_true", default=False, + help="do not check compilation before adding scripts") +p_update.add_argument('-p', "--preserve", action="store_true", default=False, + help="don't remove image after adding to database") +p_update.add_argument("path", nargs="?", default=".") +p_update.set_defaults(func=c_update) + # cat command parser p_cat = subparsers.add_parser("cat", help=c_cat.__doc__.lower()) p_cat.add_argument("-v", "--image-version", type=int, default=None,