From 7e1a6d8241018e02bca4a9d0aa34b8fa89b281c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Dunand?= <aurelien.dunand@smartjog.com> Date: Mon, 25 Jul 2011 14:10:30 +0200 Subject: [PATCH] Add cat command --- bin/is | 22 ++++++++++++++++++++++ installsystems/image.py | 5 +++++ 2 files changed, 27 insertions(+) diff --git a/bin/is b/bin/is index 88451fc..1b67f0b 100755 --- a/bin/is +++ b/bin/is @@ -189,6 +189,19 @@ def c_list(parser, args): arrow('#light##green#[Image]#reset# %s' % pkg.name) pkg.show(verbose=args.verbose_list, list=True) +def c_cat(parser, args): + ''' + Display image's file + ''' + # looks if arguments is a file or image name + if istools.pathtype(args.image) == "file" and os.path.isfile(args.image): + pkg = PackageImage(istools.abspath(args.image)) + elif PackageImage.check_image_name(args.image): + # get image package + repoman = load_repositories(args) + pkg = repoman.get(args.image, args.image_version) + pkg.cat(args.file) + def c_search(parser, args): ''' Search in repository @@ -292,6 +305,15 @@ 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) +# 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, + help="image version") +p_cat.add_argument("image", help="image (path or name)") +p_cat.add_argument("file", help="file to cat") +p_cat.set_defaults(func=c_cat, subparser=p_cat) + # get command parser p_get = subparsers.add_parser("get", help=c_get.__doc__.lower()) p_get.set_defaults(func=c_get) diff --git a/installsystems/image.py b/installsystems/image.py index 860927b..57a8e10 100644 --- a/installsystems/image.py +++ b/installsystems/image.py @@ -457,6 +457,11 @@ class PackageImage(Image): pay_obj.check() arrowlevel(-1) + def cat(self, file): + fd = self._tarball.extractfile(file) + arrow("%s v%s : %s" % (self.name, self.version, file)) + out(fd.read()) + def run_parser(self, **kwargs): ''' Run parser scripts -- GitLab