From 3b3f9e8b7e0cb35026eec805f501d0720000c57f Mon Sep 17 00:00:00 2001 From: Alessandro ZANNI Date: Tue, 4 Oct 2016 23:57:07 +0200 Subject: [PATCH] zip / unzip main module --- pupy/modules/zip.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 pupy/modules/zip.py diff --git a/pupy/modules/zip.py b/pupy/modules/zip.py new file mode 100644 index 00000000..4a359caf --- /dev/null +++ b/pupy/modules/zip.py @@ -0,0 +1,26 @@ +# -*- coding: UTF8 -*- +from pupylib.PupyModule import * +from pupylib.utils.rpyc_utils import redirected_stdio + +__class_name__="Zip" + +@config(cat="admin") +class Zip(PupyModule): + """ zip / unzip file or directory """ + + def init_argparse(self): + self.arg_parser = PupyArgumentParser(prog="zip", description=self.__doc__) + self.arg_parser.add_argument('source', type=str, help='path of the source file or directory to zip') + + self.arg_parser.add_argument('-u', action='store_true', help='unzip file (default: zip file)') + self.arg_parser.add_argument('-d', dest='destination', help='path of the destination file (default: current directory)') + + def run(self, args): + self.client.load_package("pupyutils.zip") + with redirected_stdio(self.client.conn): + # zip + if not args.u: + self.client.conn.modules["pupyutils.zip"].zip(args.source, args.destination) + # unzip + else: + self.client.conn.modules["pupyutils.zip"].unzip(args.source, args.destination) \ No newline at end of file