Commit 7e1a6d82 authored by Aurélien Dunand's avatar Aurélien Dunand Committed by Seblu
Browse files

Add cat command

parent 6544e5b4
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -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)
+5 −0
Original line number Diff line number Diff line
@@ -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