Exemplo n.º 1
0
    def wait_childs(self):
        """"""
        for r in wait(self.readers):
            try:
                msg = r.recv()
            except EOFError:
                self.readers.remove(r)
            else:
                if len(msg)==3 and msg[self.K_TYPE] in self.TYPE_MSG :

                    cpid = self.getcpid(msg[self.K_ID])

                    if msg[self.K_TYPE] == self.MSG_INIT :
                        if hasattr(self.onstart_bind, '__call__'):
                            self.onstart_bind(msg[self.K_ID], cpid, msg[self.K_DATA])

                    elif msg[self.K_TYPE] == self.MSG_PRINT :
                        if Sys.g.DEBUG :
                            if not Sys.g.GUI :
                                for item in msg[self.K_DATA] :
                                    Sys.echo(item[0], Sys.clzdic[item[1]], False, True)
                                Sys.dprint('')
                            #~ else :
                            Sys.wlog(msg[self.K_DATA])

                    elif msg[self.K_TYPE] == self.MSG_DATA :
                        if hasattr(self.onrun_bind, '__call__'):
                            self.onrun_bind(msg[self.K_ID], cpid, msg[self.K_DATA])

                    elif msg[self.K_TYPE] == self.MSG_END :
                        if hasattr(self.onend_bind, '__call__'):
                            self.onend_bind(msg[self.K_ID], cpid, msg[self.K_DATA])
Exemplo n.º 2
0
 def needConfig(self):
     Sys.clear()
     self.pheader()
     Sys.echo(" " * 4 + "ImpraStorage has no configuration file !!", Sys.Clz.fgB1)
     Sys.dprint()
     Sys.echo(
         " " * 8 + "# to create the config file you must use this command with appropriate values :", Sys.Clz.fgn7
     )
     Sys.echo(" " * 8 + "# type command help for details", Sys.Clz.fgn7)
     Sys.echo(" " * 8 + conf.PRG_CLI_NAME + " ", Sys.Clz.fgB7, False)
     Sys.echo("conf ", Sys.Clz.fgB3, False)
     Sys.echo("-S ", Sys.Clz.fgB3, False)
     Sys.echo("profileName ", Sys.Clz.fgB1, False)
     Sys.echo("-N ", Sys.Clz.fgB3, False)
     Sys.echo("yourName ", Sys.Clz.fgB1, False)
     Sys.echo("-K -H ", Sys.Clz.fgB3, False)
     Sys.echo("accountHost ", Sys.Clz.fgB1, False)
     Sys.echo("-P ", Sys.Clz.fgB3, False)
     Sys.echo("993 ", Sys.Clz.fgB1, False)
     Sys.echo("-U ", Sys.Clz.fgB3, False)
     Sys.echo("accountName ", Sys.Clz.fgB1, False)
     Sys.echo("-X ", Sys.Clz.fgB3, False)
     Sys.echo("accountPassword ", Sys.Clz.fgB1)
     Sys.dprint()
     Sys.exit(1)
Exemplo n.º 3
0
    def print_options():
        """"""
        Sys.dprint('\n')
        AbstractCli.printLineSep(Const.LINE_SEP_CHAR,Const.LINE_SEP_LEN)

        Sys.echo('  MAIN OPTIONS :\n'                                       , Sys.CLZ_HELP_CMD)
        Sys.echo(' '*4+'-v'.ljust(13,' ')+', --version'                     , Sys.CLZ_HELP_ARG)
        Sys.echo(' '*50+'display programm version'                          , Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(' '*4+'-d'.ljust(13,' ')+', --debug'                       , Sys.CLZ_HELP_ARG)
        Sys.echo(' '*50+'enable debug mode'                                 , Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(' '*4+'-f'.ljust(13,' ')+', --force'                       , Sys.CLZ_HELP_ARG)
        Sys.echo(' '*50+'force rewriting existing files without alert'      , Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(' '*4+'-q'.ljust(13,' ')+', --quiet'                       , Sys.CLZ_HELP_ARG)
        Sys.echo(' '*50+'don\'t print status messages to stdout'            , Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(' '*4+'-h'.ljust(13,' ')+', --help'                        , Sys.CLZ_HELP_ARG)
        Sys.echo(' '*50+'display help'                                      , Sys.CLZ_HELP_ARG_INFO)

        Sys.dprint('\n')
        Sys.echo('  KEY OPTIONS :\n'                                        , Sys.CLZ_HELP_CMD)
        Sys.echo(' '*4+'-a '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('VALUE'.ljust(10,' ')                                      , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --bind_opt_a'.ljust(18,' ')                             , Sys.CLZ_HELP_ARG, False)
        Sys.echo('VALUE'.ljust(10,' ')                                      , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'description option a'                              , Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(' '*4+'-b '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('VALUE'.ljust(10,' ')                                      , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --bind_opt_b'.ljust(18,' ')                             , Sys.CLZ_HELP_ARG, False)
        Sys.echo('VALUE'.ljust(10,' ')                                      , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'description option b'                              , Sys.CLZ_HELP_ARG_INFO)
Exemplo n.º 4
0
 def add(self, key, label, count, ext='', usr='', cat='', fhash='', size=0, account=''):
     """Add an entry to the index
     """
     if self.get(fhash) == None :
         self.dic[fhash] = (self.id, fhash, label, size, count, ext, usr, cat, account, key)
         self.id +=1
         return self.id-1 
     else :
        Sys.dprint(label+' already exist')
Exemplo n.º 5
0
 def load_profile(self):
     """"""
     if self.check_profile(self.o.active_profile):
         Sys.dprint(" ", end=" ")
         Sys.echo(" == profile `", Sys.Clz.bg2 + Sys.Clz.fgb7, False)
         Sys.echo(self.o.active_profile, Sys.Clz.bg2 + Sys.Clz.fgB3, False)
         Sys.echo("` loaded == ", Sys.Clz.bg2 + Sys.Clz.fgb7)
         Sys.dprint()
         self.ini.set("profile", self.o.active_profile)
         self.ini.save()
     else:
         self.check_profile(self.o.active_profile, True)
Exemplo n.º 6
0
 def remove(self):
     """"""
     self._getId()
     try:
         if self.idx!= None : self.delids.append(Io.bytes(self.idx))
         self.ih.delete(self.delids, True)
         self.idx = None
     except Exception as e :
         Sys.dprint('error : ')
         Sys.dprint(e)
         
     self.ih.clearTrash()
     self.removeLocal()
Exemplo n.º 7
0
    def update(self):
        """"""
        self.switchFileAccount(self.conf.profile)
        try:
            if self.idx != None :
                if not isinstance(self.idx,bytes):
                    self.idx = Io.bytes(self.idx)                
                self.delids.append(self.idx)
        except Exception as e :
            Sys.dprint('error : ')
            Sys.dprint(e)   

        self.index.fixDuplicateIds()
        #~ self.index.fixAccount('gmail5')
        self.index.encrypt()
        msgIndex    = self.mb.buildIndex(self.pathIdx)
        _, self.idx = self.ih.send(msgIndex.as_string(), self.rootBox)
        date        = self.ih.headerField(self.idx, 'date', True)
        self.conf.sets((['uid'  , self.idx              , 'index'],
                       ['date' , date                   , 'index'],
                       ['time' , str(Sys.datetime.now()), 'index']))
        
        Sys.pwlog([(' Index updated ('  , Const.CLZ_0),
                   (str(int(self.idx))  , Const.CLZ_2),
                   (') '                , Const.CLZ_0),
                   (str(date)           , Const.CLZ_7, True)])
        
        try :
            self.ih.delete(self.delids, True)       
        except :
            Sys.dprint('error : ')
            Sys.dprint(e)
        self.ih.clearTrash()
        return True
Exemplo n.º 8
0
 def onCommandGet(self):
     """"""
     if not len(self.a) > 1:
         self.parser.error_cmd((self.a[0] + " command need an id",), True)
     else:
         vid = self.a[1]
         ids = []
         for sid in vid.split(","):
             seq = sid.split("-")
             if len(seq) == 2:
                 ids.extend(range(int(seq[0]), int(seq[1]) + 1))
             else:
                 ids.append(sid)
         for sid in ids:
             Sys.clear()
             self.pheader()
             if self.impst.getFile(sid):
                 self.Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
                 Sys.dprint(" ", end="")
                 Sys.echo(" == OK == ", Sys.Clz.bg2 + Sys.Clz.fgb7)
                 Sys.dprint()
             else:
                 self.Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
                 Sys.dprint(" ", end="")
                 Sys.echo(" == `", Sys.Clz.bg1 + Sys.Clz.fgB7, False)
                 Sys.echo(str(sid), Sys.Clz.bg1 + Sys.Clz.fgB3, False)
                 Sys.echo("` KO == ", Sys.Clz.bg1 + Sys.Clz.fgB7)
                 Sys.dprint()
Exemplo n.º 9
0
 def on_progress(self, thread=None, progress=None, ref=None):
     #~ print('thread_progress', thread.name, progress)
     while not Sys.g.LOG_QUEUE.empty():
         cth, data = Sys.g.LOG_QUEUE.get()
         #~ print('*'+str(cth))
         if data is not None :
             if data is Sys.g.SIGNAL_STOP :
                 Sys.dprint('STOP')
                 if thread is not None : thread.cancel()
             elif data is Sys.g.SIGNAL_CLEAR :
                 self.clearLog(thname=cth)
             else:
                 self.printTextView(data, thname=cth)
                 
     if progress is not None : self.update_progress(progress, thname=thread.name)
Exemplo n.º 10
0
    def _write(sign, t=None, enter=True, args=''):
        """"""
        if Sys.g.DEBUG :
            #~ DONT USE Sys.g.RLOCK
            isChildProc = not Sys.g_is_main_proc()
            bind_data   = []
            if t is not None :
                bind_data += Sys.pdate(t.timetuple() if enter else Sys.datetime.now().timetuple(), isChildProc)

            a, b, c, d, e = ('=> ' if enter else '<= '), '['+str(Sys.getpid()).rjust(5,' ')+']', ' '+sign+'(', Log._formatArgs(args), ') '
            if not isChildProc :
                Sys.echo(a , Sys.CLZ_IO  , False)
                Sys.echo(b , Sys.CLZ_PID if  not isChildProc else Sys.CLZ_CPID, False)
                Sys.echo(c , Sys.CLZ_FUNC, False)
                try:
                    Sys.echo(d , Sys.CLZ_ARGS, False)
                except :
                    Sys.echo('?nr_arg?' , Sys.CLZ_ARGS, False)
                    pass
                Sys.echo(e , Sys.CLZ_FUNC, False)

            bind_data += [(a, Const.CLZ_IO),(b, Const.CLZ_CPID if isChildProc else Const.CLZ_PID),(c , Const.CLZ_CFUNC if isChildProc else Const.CLZ_FUNC),(d , Const.CLZ_ARGS),(e , Const.CLZ_CFUNC if isChildProc else Const.CLZ_FUNC)]

            if not enter and t is not None :
                bind_data += Sys.pdelta(t, '', isChildProc)
            else :
                bind_data += Sys.dprint(dbcall=isChildProc)

            if isChildProc :
                Sys.sendMainProcMsg(1, bind_data)
            else :
                Sys.wlog(bind_data)
Exemplo n.º 11
0
    def on_start(self):
        """"""
        self.app.createDefaultKeyIfNone()
        key, size, mark = self.app.getKeyInfos()

        self.curKey = self.DEFAULT_KEY
        self.get('filechooserbutton1').set_filename(
            self.app.getDefaultKeyPath())
        self.get('filechooserbutton3').set_current_folder(
            conf.DEFVAL_USER_PATH)
        devPath = '/home/dev/git_repos/kirmah2.15/'
        #~ self.get('filechooserbutton3').set_current_folder(devPath)
        self.get('checkbutton1').set_active(conf.DEFVAL_NPROC >= 2)
        self.get('checkbutton3').set_active(True)
        self.get('checkbutton4').set_active(True)
        self.get('spinbutton2').set_value(conf.DEFVAL_NPROC)
        if conf.DEFVAL_NPROC >= 2:
            self.disable('spinbutton2', False)
        self.get('checkbutton2').set_active(conf.DEFVAL_MIXMODE)
        self.get('checkbutton4').set_active(conf.DEFVAL_RANDOMMODE)
        self.get('entry1').set_text(mark)

        Sys.g.UI_AUTO_SCROLL = True
        self.textview = self.get('textview1')
        self.textview.override_background_color(Gtk.StateFlags.NORMAL,
                                                Gdk.RGBA(0, 0, 0, 1.0))
        self.textview.modify_font(
            Pango.font_description_from_string('DejaVu Sans Mono Book 11'))
        self.textbuffer = self.textview.get_buffer()
        self.tags = self.buildTxtTags(self.textbuffer)
        self.progressbar = self.get('progressbar1')
        cbt = self.get('comboboxtext1')
        cbt.connect("changed", self.on_compression_changed)
        tree_iter = cbt.get_model().get_iter_first()
        print(cbt.get_model().get_string_from_iter(tree_iter))
        tree_iter = cbt.get_model().get_iter_from_string('3')
        cbt.set_active_iter(tree_iter)
        cbt = self.get('comboboxtext2')
        cbt.connect("changed", self.on_logging_changed)
        tree_iter = cbt.get_model().get_iter_first()
        tree_iter = cbt.get_model().get_iter_from_string('4')
        cbt.set_active_iter(tree_iter)
        Sys.clear()
        Sys.dprint('INIT UI')
        self.start = True
        self.thkmh = None
Exemplo n.º 12
0
    def on_start(self):
        """"""
        self.app.createDefaultKeyIfNone()
        key, size, mark = self.app.getKeyInfos()

        self.curKey = self.DEFAULT_KEY
        print('-'*15)
        v = self.app.getDefaultKeyPath()
        print(v)
        self.get('filechooserbutton1').set_filename(self.app.getDefaultKeyPath())
        print(conf.DEFVAL_USER_PATH)
        self.get('filechooserbutton3').set_current_folder(conf.DEFVAL_USER_PATH)
        devPath = '/home/dev/git_repos/kirmah2.15/'
        #~ self.get('filechooserbutton3').set_current_folder(devPath)
        self.get('checkbutton1').set_active(conf.DEFVAL_NPROC>=2)
        self.get('checkbutton3').set_active(True)
        self.get('checkbutton4').set_active(True)
        self.get('spinbutton2').set_value(conf.DEFVAL_NPROC)
        if conf.DEFVAL_NPROC >= 2:
            self.disable('spinbutton2', False)
        self.get('checkbutton2').set_active(conf.DEFVAL_MIXMODE)
        self.get('checkbutton4').set_active(conf.DEFVAL_RANDOMMODE)
        self.get('entry1').set_text(mark)

        Sys.g.UI_AUTO_SCROLL = True
        self.textview    = self.get('textview1')
        self.textview.override_background_color(Gtk.StateFlags.NORMAL, Gdk.RGBA(0, 0, 0, 1.0))
        self.textview.modify_font(Pango.font_description_from_string ('DejaVu Sans Mono Book 11'))
        self.textbuffer  = self.textview.get_buffer()
        self.tags        = self.buildTxtTags(self.textbuffer)
        self.progressbar = self.get('progressbar1')
        cbt = self.get('comboboxtext1')
        cbt.connect("changed", self.on_compression_changed)
        tree_iter = cbt.get_model().get_iter_first()
        print(cbt.get_model().get_string_from_iter(tree_iter))
        tree_iter = cbt.get_model().get_iter_from_string('3')
        cbt.set_active_iter(tree_iter)
        cbt = self.get('comboboxtext2')
        cbt.connect("changed", self.on_logging_changed)
        tree_iter = cbt.get_model().get_iter_first()
        tree_iter = cbt.get_model().get_iter_from_string('4')
        cbt.set_active_iter(tree_iter)
        Sys.clear()
        Sys.dprint('INIT UI')
        self.start = True
        self.thkmh = None
Exemplo n.º 13
0
 def onCommandEdit(self):
     """"""
     key = self.getMatchKey()
     if key is not None:
         if self.o.label is not None or self.o.category is not None:
             if self.impst.editFile(key, self.o.label, self.o.category):
                 Sys.clear()
                 self.pheader()
                 self.impst.idxu.index.print("ID", [int(self.a[1])])
                 Sys.dprint("\n ", end="")
                 Sys.echo(" == OK == ", Sys.Clz.bg2 + Sys.Clz.fgb7)
                 Sys.dprint()
             else:
                 self.parser.error_cmd(
                     (("id ", (self.a[1], Sys.CLZ_ERROR_PARAM), " has not been modified "),), False
                 )
         else:
             self.parser.error_cmd(((" command edit need a label or a category "),), True)
Exemplo n.º 14
0
 def thread_progress(self, thread, progress, ref):
     while not Sys.g.LOG_QUEUE.empty():
         data = Sys.g.LOG_QUEUE.get()
         if data is not None:
             if data is not Sys.g.SIGNAL_STOP:
                 for item in data:
                     ei = self.textbuffer.get_end_iter()
                     offs = ei.get_offset()
                     self.textbuffer.insert_at_cursor(item[0])
                     ei = self.textbuffer.get_end_iter()
                     oi = self.textbuffer.get_iter_at_offset(offs)
                     tagName = item[1]
                     self.textbuffer.apply_tag(self.tags[tagName], oi, ei)
                 self.textbuffer.insert_at_cursor("\n")
                 self.scroll_end()
             else:
                 Sys.dprint("STOP")
                 thread.cancel()
     self.update_progress(progress)
Exemplo n.º 15
0
 def thread_progress(self, thread, progress, ref):
     while not Sys.g.LOG_QUEUE.empty():
         data = Sys.g.LOG_QUEUE.get()
         if data is not None:
             if data is not Sys.g.SIGNAL_STOP:
                 for item in data:
                     ei = self.textbuffer.get_end_iter()
                     offs = ei.get_offset()
                     self.textbuffer.insert_at_cursor(item[0])
                     ei = self.textbuffer.get_end_iter()
                     oi = self.textbuffer.get_iter_at_offset(offs)
                     tagName = item[1]
                     self.textbuffer.apply_tag(self.tags[tagName], oi, ei)
                 self.textbuffer.insert_at_cursor('\n')
                 self.scroll_end()
             else:
                 Sys.dprint('STOP')
                 thread.cancel()
     self.update_progress(progress)
Exemplo n.º 16
0
 def printSection(self, sectionName, withoutSectionName=False):
     """"""
     if sectionName!='main':
         Sys.dprint()
         if not withoutSectionName :
             Sys.echo('['+sectionName+']', Sys.Clz.fgB3)
         else:
             Sys.echo('['+sectionName.split('.')[1]+']', Sys.Clz.fgB3)
     if sectionName in self.dic :
         for k in sorted(self.dic[sectionName]):
             k = k.rstrip(' ')
             a = ''
             Sys.echo(k.ljust(10,' ')+' = '       , Sys.Clz.fgn7, False)
             if self.dic[sectionName][k] is not None :
                 if len(self.dic[sectionName][k]) > 98: a = '…'
                 if Sys.isUnix() or k is not 'key' :
                     Sys.echo(self.dic[sectionName][k][:98]+a, Sys.Clz.fgN2)
                 else:
                     Sys.echo('key is masked', Sys.Clz.fgb1)
Exemplo n.º 17
0
    def onCommandExport(self):
        """"""
        Sys.clear()
        self.pheader()
        from time import strftime

        name = strftime("%Y%m%d%H%M%S") + "_" + self.impst.idxu.conf.profile
        Sys.echo(" saving ", Sys.Clz.fgn7, False)
        Sys.echo(name + ".index" + Kirmah.EXT, Sys.Clz.fgB2)
        Io.copy(self.impst.idxu.pathIdx, name + ".index" + Kirmah.EXT)
        Sys.echo(" saving ", Sys.Clz.fgn7, False)
        Sys.echo(name + ".ini" + Kirmah.EXT, Sys.Clz.fgB2)
        self.impst.idxu.conf.ini.save(name + ".ini", True)
        Sys.echo(" saving ", Sys.Clz.fgn7, False)
        Sys.echo(name + ".key", Sys.Clz.fgB2)
        Io.set_data(name + ".key", self.impst.idxu.conf.get("key", "keys"))
        Sys.dprint("\n ", end="")
        Sys.echo(" == OK == ", Sys.Clz.bg2 + Sys.Clz.fgb7)
        Sys.dprint()
Exemplo n.º 18
0
 def halt_thread(self, *args):
     Sys.wlog(Sys.dprint())
     Sys.pwarn(('thread interrupt', ), False)
     self.get('button1').set_sensitive(False)
     if self.thkmh is not None and self.thkmh.isAlive():
         self.thkmh.cancel()
     else:
         self.textbuffer.insert_at_cursor('Kmh Thread is not Alive\n')
         self.on_proceed_end(True)
         self.pb.hide()
         self.show_log()
Exemplo n.º 19
0
 def halt_thread(self, *args):
     Sys.wlog(Sys.dprint())
     Sys.pwarn(('thread interrupt',), False)
     self.get('button1').set_sensitive(False)
     if self.thkmh is not None and self.thkmh.isAlive():
         self.thkmh.cancel()
     else :
         self.textbuffer.insert_at_cursor('Kmh Thread is not Alive\n')
         self.on_proceed_end(True)
         self.pb.hide()
         self.show_log()
Exemplo n.º 20
0
 def switchFileAccount(self, profile=None, force=False):
     """"""
     pl = self.conf.get('multi','imap')
     if pl is not None and len(pl)>0 :
         pl = pl.split(',')
         if len(pl) > 0:
             if not self.conf.profile in pl:
                 pl.append(self.conf.profile)
             iconf   = self.ih.conf
             account = self.conf.get('user','imap',profile)
             if True or iconf.user != account :
                 # reinit
                 iconf.user = None
                 try :
                     if profile is None : profile = self.index.getLightestAccount(pl)                        
                     if profile in pl :
                         iconf.user = self.conf.get('user','imap',profile)
                         iconf.pwd  = self.conf.get('pass','imap',profile)
                         iconf.host = self.conf.get('host','imap',profile)
                         iconf.port = self.conf.get('port','imap',profile)
                     self.ih.switchAccount(iconf, self.rootBox, force)
                 except BadLoginException as e:
                     Sys.dprint('Error : ')
                     Sys.dprint(e)
                     Sys.dprint('check your connection or your imap config for profile '+profile)
     if profile is None: profile = self.conf.profile
     return profile
Exemplo n.º 21
0
 def onend_cmd(self, title, stime, done, outputfile):
     """"""
     s = Const.LINE_SEP_CHAR*Const.LINE_SEP_LEN
     Sys.echo(s, Sys.CLZ_HEAD_LINE)
     Sys.wlog([(s, Const.CLZ_HEAD_SEP)])
     Sys.pstep(title, stime, done, True)
     Sys.echo(s, Sys.CLZ_HEAD_LINE)
     Sys.wlog([(s, Const.CLZ_HEAD_SEP)])
     if done and outputfile is not None:
         Sys.cli_emit_progress(100)
         Sys.echo(' '*5+Sys.realpath(outputfile), Sys.Clz.fgB1, False)
         Sys.echo(' ('+Sys.getFileSize(outputfile)+')', Sys.Clz.fgB3)
         bdata = [(' '*5+Sys.realpath(outputfile), 'io'),(' ('+Sys.getFileSize(outputfile)+')','func')]
         Sys.wlog(bdata)
         Sys.wlog(Sys.dprint())
Exemplo n.º 22
0
 def onend_cmd(self, title, stime, done, outputfile):
     """"""
     s = Const.LINE_SEP_CHAR * Const.LINE_SEP_LEN
     Sys.print(s, Sys.CLZ_HEAD_LINE)
     Sys.wlog([(s, Const.CLZ_HEAD_SEP)])
     Sys.pstep(title, stime, done, True)
     Sys.print(s, Sys.CLZ_HEAD_LINE)
     Sys.wlog([(s, Const.CLZ_HEAD_SEP)])
     if done and outputfile is not None:
         Sys.cli_emit_progress(100)
         Sys.print(' ' * 5 + Sys.realpath(outputfile), Sys.Clz.fgB1, False)
         Sys.print(' (' + Sys.getFileSize(outputfile) + ')', Sys.Clz.fgB3)
         bdata = [(' ' * 5 + Sys.realpath(outputfile), 'io'),
                  (' (' + Sys.getFileSize(outputfile) + ')', 'func')]
         Sys.wlog(bdata)
         Sys.wlog(Sys.dprint())
Exemplo n.º 23
0
    def onCommandSearch(self):
        """"""
        if not len(self.a) > 1:
            self.parser.error_cmd((" search command need one argument",), True)
        else:
            vsearch = self.a[1]

            matchIds = self.impst.idxu.index.getByPattern(vsearch)
            Sys.clear()
            self.pheader()
            if matchIds is not None:
                Sys.echo(" searching --", Sys.Clz.fgB3, False)
                Sys.echo(" `" + vsearch + "`", Sys.Clz.fgB7, False)
                Sys.echo(" -- found ", Sys.Clz.fgB3, False)
                Sys.echo(str(len(matchIds)), Sys.Clz.fgB1, False)
                Sys.echo(" results --", Sys.Clz.fgB3)
                self.Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)

                matchIdsCatg = None
                matchIdsUser = None
                matchIdsCrit = None
                if self.o.category is not None:
                    Sys.dprint(self.o.category)
                    matchIdsCatg = self.impst.idxu.index.getByCategory(self.o.category)
                if self.o.user is not None:
                    matchIdsUser = impst.idxu.index.getByUser(o.user)

                if self.o.category is not None:
                    if self.o.user is not None:
                        matchIdsCrit = self.impst.idxu.index.getIntersection(matchIdsCatg, matchIdsUser)
                    else:
                        matchIdsCrit = matchIdsCatg

                elif self.o.user is not None:
                    matchIdsCrit = matchIdsUser

                if matchIdsCrit is not None:
                    matchIds = self.impst.idxu.index.getIntersection(matchIds, matchIdsCrit)

                order = self.o.order
                if self.o.order_inv is not None:
                    order = "-" + self.o.order_inv

                self.impst.idxu.index.print(self.o.order, matchIds)
            else:
                self.Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
                Sys.dprint(" ", end="")
                Sys.echo(" == no match found for pattern `", Sys.Clz.bg3 + Sys.Clz.fgB4, False)
                Sys.echo(vsearch, Sys.Clz.bg3 + Sys.Clz.fgB1, False)
                Sys.echo("` == ", Sys.Clz.bg3 + Sys.Clz.fgB4)
                Sys.dprint()
Exemplo n.º 24
0
 def onCommandRemove(self):
     """"""
     key = self.getMatchKey()
     if key is not None:
         Sys.clear()
         self.pheader()
         if self.impst.removeFile(self.a[1]):
             self.Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
             Sys.dprint(" ", end="")
             Sys.echo(" == OK == ", Sys.Clz.bg2 + Sys.Clz.fgb7)
         else:
             self.Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
             Sys.dprint(" ", end="")
             Sys.echo(" == can't remove file == ", Sys.Clz.bg3 + Sys.Clz.fgB4)
         Sys.dprint()
Exemplo n.º 25
0
    def print_options():
        """"""
        Sys.dprint("\n")
        Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)

        Sys.echo("  MAIN OPTIONS :\n", Sys.CLZ_HELP_CMD)
        Sys.echo(" " * 4 + "-v".ljust(13, " ") + ", --version", Sys.CLZ_HELP_ARG)
        Sys.echo(" " * 50 + "display programm version", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-d".ljust(13, " ") + ", --debug", Sys.CLZ_HELP_ARG)
        Sys.echo(" " * 50 + "enable debug mode", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-f".ljust(13, " ") + ", --force", Sys.CLZ_HELP_ARG)
        Sys.echo(" " * 50 + "force rewriting existing files without alert", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-q".ljust(13, " ") + ", --quiet", Sys.CLZ_HELP_ARG)
        Sys.echo(" " * 50 + "don't print status messages to stdout", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-h".ljust(13, " ") + ", --help", Sys.CLZ_HELP_ARG)
        Sys.echo(" " * 50 + "display help", Sys.CLZ_HELP_ARG_INFO)

        Sys.dprint("\n")
        Sys.echo("  KEY OPTIONS :\n", Sys.CLZ_HELP_CMD)
        Sys.echo(" " * 4 + "-l ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("LENGTH".ljust(10, " "), Sys.CLZ_HELP_PARAM, False)
        Sys.echo(", --length".ljust(18, " "), Sys.CLZ_HELP_ARG, False)
        Sys.echo("LENGTH".ljust(10, " "), Sys.CLZ_HELP_PARAM)
        Sys.echo(" " * 50 + "specified key length (128 to 4096 - default:1024)", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-o ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("FILE".ljust(10, " "), Sys.CLZ_HELP_PARAM, False)
        Sys.echo(", --outputfile".ljust(18, " "), Sys.CLZ_HELP_ARG, False)
        Sys.echo("FILE".ljust(10, " "), Sys.CLZ_HELP_PARAM)
        Sys.echo(" " * 50 + "specified key output filename", Sys.CLZ_HELP_ARG_INFO)

        Sys.dprint("\n")
        Sys.echo("  ENCRYPT OPTIONS :\n", Sys.CLZ_HELP_CMD)
        Sys.echo(" " * 4 + "-a".ljust(13, " ") + ", --fullcompress", Sys.CLZ_HELP_ARG)
        Sys.echo(" " * 50 + "enable full compression mode", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-z".ljust(13, " ") + ", --compress", Sys.CLZ_HELP_ARG)
        Sys.echo(" " * 50 + "enable compression mode", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-Z".ljust(13, " ") + ", --nocompress", Sys.CLZ_HELP_ARG)
        Sys.echo(" " * 50 + "disable compression mode", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-r".ljust(13, " ") + ", --random", Sys.CLZ_HELP_ARG)
        Sys.echo(" " * 50 + "enable random mode", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-R".ljust(13, " ") + ", --norandom", Sys.CLZ_HELP_ARG)
        Sys.echo(" " * 50 + "disable random mode", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-m".ljust(13, " ") + ", --mix", Sys.CLZ_HELP_ARG)
        Sys.echo(" " * 50 + "enable mix mode", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-M".ljust(13, " ") + ", --nomix", Sys.CLZ_HELP_ARG)
        Sys.echo(" " * 50 + "disable mix mode", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-j ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("COUNT".ljust(10, " "), Sys.CLZ_HELP_PARAM, False)
        Sys.echo(", --multiprocess".ljust(18, " "), Sys.CLZ_HELP_ARG, False)
        Sys.echo("COUNT".ljust(10, " "), Sys.CLZ_HELP_PARAM)
        Sys.echo(" " * 50 + "number of process for encryption (2 to 8)", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-k ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("FILE".ljust(10, " "), Sys.CLZ_HELP_PARAM, False)
        Sys.echo(", --keyfile".ljust(18, " "), Sys.CLZ_HELP_ARG, False)
        Sys.echo("FILE".ljust(10, " "), Sys.CLZ_HELP_PARAM)
        Sys.echo(" " * 50 + "key filename used to encrypt", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-o ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("FILE".ljust(10, " "), Sys.CLZ_HELP_PARAM, False)
        Sys.echo(", --outputfile".ljust(18, " "), Sys.CLZ_HELP_ARG, False)
        Sys.echo("FILE".ljust(10, " "), Sys.CLZ_HELP_PARAM)
        Sys.echo(" " * 50 + "specified encrypted output filename", Sys.CLZ_HELP_ARG_INFO)

        Sys.dprint("\n")
        Sys.echo("  DECRYPT OPTIONS :\n", Sys.CLZ_HELP_CMD)
        Sys.echo(" " * 4 + "-j ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("COUNT".ljust(10, " "), Sys.CLZ_HELP_PARAM, False)
        Sys.echo(", --multiprocess".ljust(18, " "), Sys.CLZ_HELP_ARG, False)
        Sys.echo("COUNT".ljust(10, " "), Sys.CLZ_HELP_PARAM)
        Sys.echo(" " * 50 + "number of process for decryption (2 to 8)", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-k ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("FILE".ljust(10, " "), Sys.CLZ_HELP_PARAM, False)
        Sys.echo(", --keyfile".ljust(18, " "), Sys.CLZ_HELP_ARG, False)
        Sys.echo("FILE".ljust(10, " "), Sys.CLZ_HELP_PARAM)
        Sys.echo(" " * 50 + "key filename used to decrypt", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-o ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("FILE".ljust(10, " "), Sys.CLZ_HELP_PARAM, False)
        Sys.echo(", --outputfile".ljust(18, " "), Sys.CLZ_HELP_ARG, False)
        Sys.echo("FILE".ljust(10, " "), Sys.CLZ_HELP_PARAM)
        Sys.echo(" " * 50 + "specified decrypted output filename", Sys.CLZ_HELP_ARG_INFO)

        Sys.dprint("\n")
        Sys.echo("  SPLIT OPTIONS :\n", Sys.CLZ_HELP_CMD)
        Sys.echo(" " * 4 + "-p ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("COUNT".ljust(10, " "), Sys.CLZ_HELP_PARAM, False)
        Sys.echo(", --part".ljust(18, " "), Sys.CLZ_HELP_ARG, False)
        Sys.echo("COUNT".ljust(10, " "), Sys.CLZ_HELP_PARAM)
        Sys.echo(" " * 50 + "count part to split", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-k ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("FILE".ljust(10, " "), Sys.CLZ_HELP_PARAM, False)
        Sys.echo(", --keyfile".ljust(18, " "), Sys.CLZ_HELP_ARG, False)
        Sys.echo("FILE".ljust(10, " "), Sys.CLZ_HELP_PARAM)
        Sys.echo(" " * 50 + "key filename used to split", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-o ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("TARFILE".ljust(10, " "), Sys.CLZ_HELP_PARAM, False)
        Sys.echo(", --outputfile".ljust(18, " "), Sys.CLZ_HELP_ARG, False)
        Sys.echo("TARFILE".ljust(10, " "), Sys.CLZ_HELP_PARAM)
        Sys.echo(" " * 50 + "specified tar output filename", Sys.CLZ_HELP_ARG_INFO)

        Sys.dprint("\n")
        Sys.echo("  MERGE OPTIONS :\n", Sys.CLZ_HELP_CMD)
        Sys.echo(" " * 4 + "-k ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("FILE".ljust(10, " "), Sys.CLZ_HELP_PARAM, False)
        Sys.echo(", --keyfile".ljust(18, " "), Sys.CLZ_HELP_ARG, False)
        Sys.echo("FILE".ljust(10, " "), Sys.CLZ_HELP_PARAM)
        Sys.echo(" " * 50 + "key filename used to merge", Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(" " * 4 + "-o ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("FILE".ljust(10, " "), Sys.CLZ_HELP_PARAM, False)
        Sys.echo(", --outputfile".ljust(18, " "), Sys.CLZ_HELP_ARG, False)
        Sys.echo("FILE".ljust(10, " "), Sys.CLZ_HELP_PARAM)
        Sys.echo(" " * 50 + "specified decrypted output filename", Sys.CLZ_HELP_ARG_INFO)

        Sys.dprint("\n")
Exemplo n.º 26
0
    def onCommandSplit(self):
        """"""
        done = True
        Sys.cli_emit_progress(1)
        if not self.o.parts is None and not (int(self.o.parts) >= 12
                                             and int(self.o.parts) <= 62):
            self.parser.error_cmd(
                (('invalid option ', ('-p, --parts', Sys.Clz.fgb3), ' value (',
                  ('12', Sys.Clz.fgb3), ' to ', ('62', Sys.Clz.fgb3), ')'), ))
        else:
            self.o.parts = int(self.o.parts)

        if not Sys.g.QUIET: self.parser.print_header()
        if self.o.outputfile is not None:
            if self.o.outputfile[-5:] != '.tark': self.o.outputfile += '.tark'
            if Io.file_exists(self.o.outputfile) and not self.o.force:
                Sys.pwarn((('the file ', (self.o.outputfile, Sys.Clz.fgb3),
                            ' already exists !'), ))
                done = Sys.pask('Are you sure to rewrite this file')
                self.stime = Sys.datetime.now()

        if done:

            try:
                Sys.ptask()
                Sys.cli_emit_progress(2)
                key = Io.get_data(self.o.keyfile)
                km = Kirmah(key)
                hlst = km.ck.getHashList(Sys.basename(self.a[1]), self.o.parts,
                                         True)
                Sys.cli_emit_progress(3)
                kcf = km.splitFile(self.a[1], hlst)
                t = int(Sys.time())
                times = (t, t)
                p = 85
                Sys.cli_emit_progress(p)
                Io.touch(kcf, times)
                frav = 0.24
                for row in hlst['data']:
                    p += frav
                    Io.touch(row[1] + km.EXT, times)
                    Sys.cli_emit_progress(p)
                if self.o.outputfile is not None:
                    d = Sys.datetime.now()
                    if Sys.g.DEBUG: Sys.wlog(Sys.dprint())
                    Sys.ptask('Preparing tark file')
                    hlst['data'] = sorted(hlst['data'], key=lambda lst: lst[4])
                    with tarfile.open(self.o.outputfile, mode='w') as tar:
                        tar.add(kcf, arcname=Sys.basename(kcf))
                        p = 90
                        for row in hlst['data']:
                            tar.add(row[1] + km.EXT,
                                    arcname=Sys.basename(row[1] + km.EXT))
                            p += frav
                            Sys.cli_emit_progress(p)
                    Sys.pstep('Packing destination file', d, True)
                    d = Sys.datetime.now()
                    Sys.ptask('Finalize')
                    for row in hlst['data']:
                        Io.removeFile(row[1] + km.EXT)
                        p += frav
                        Sys.cli_emit_progress(p)
                    Io.removeFile(kcf)
                    Sys.pstep('Cleaning', d, True)

            except Exception as e:
                done = False
                if Sys.g.DEBUG:
                    print('split exception')
                    print(e)

                    #~ raise e
                elif not Sys.g.QUIET:
                    Sys.pwarn((str(e), ))

        if not Sys.g.QUIET:
            Sys.cli_emit_progress(100)
            self.onend_cmd('Kirmah Split', self.stime, done, self.o.outputfile)
Exemplo n.º 27
0
    def __init__(self,
                 path,
                 remote=False,
                 rwargs=None,
                 thread=None,
                 loglvl=Const.LOG_DEFAULT):
        """"""
        AbstractCli.__init__(self, conf, self)

        Cli.HOME = conf.DEFVAL_USER_PATH
        Cli.DIRKEY = Cli.HOME + '.' + conf.PRG_NAME.lower() + Sys.sep
        if not Sys.isUnix():
            CHQ = '"'
            self.HOME = 'C:' + Sys.sep + conf.PRG_NAME.lower() + Sys.sep
            self.DIRKEY = self.HOME + 'keys' + Sys.sep
        Sys.mkdir_p(Cli.DIRKEY)

        gpData = OptionGroup(self.parser, '')
        gpData.add_option('-a', '--fullcompress', action='store_true')
        gpData.add_option('-z', '--compress', action='store_true')
        gpData.add_option('-Z', '--nocompress', action='store_true')
        gpData.add_option('-r', '--random', action='store_true')
        gpData.add_option('-R', '--norandom', action='store_true')
        gpData.add_option('-m', '--mix', action='store_true')
        gpData.add_option('-M', '--nomix', action='store_true')
        gpData.add_option('-j', '--multiprocess', action='store')
        gpData.add_option('-k', '--keyfile', action='store')
        gpData.add_option('-l', '--length', action='store', default=1024)
        gpData.add_option('-p', '--parts', action='store', default=22)
        gpData.add_option('-o', '--outputfile', action='store')
        self.parser.add_option_group(gpData)

        # rewrite argv sended by remote
        if rwargs is not None:
            import sys
            sys.argv = rwargs

        (o, a) = self.parser.parse_args()

        Sys.g.QUIET = o.quiet
        Sys.g.THREAD_CLI = thread
        Sys.g.GUI = thread is not None

        init(conf.PRG_NAME, o.debug, remote, not o.no_color, loglvl)

        if not a:
            try:
                if not o.help or not o.version:
                    self.parser.error_cmd(('no command specified', ), True)
                else:
                    Sys.clear()
                    Cli.print_help()
            except:
                if not o.version:
                    self.parser.error_cmd(('no command specified', ), True)
                else:
                    Cli.print_header()

        else:
            if a[0] == 'help':
                Sys.clear()
                Cli.print_help()

            elif a[0] in ['key', 'enc', 'dec', 'split', 'merge']:

                app = CliApp(self.HOME, path, self, a, o)

                if a[0] == 'key':
                    app.onCommandKey()
                else:
                    if not len(a) > 1:
                        self.parser.error_cmd(
                            (('an ', ('inputFile', Sys.Clz.fgb3),
                              ' is required !'), ), True)
                    elif not Io.file_exists(a[1]):
                        self.parser.error_cmd(
                            (('the file ',
                              (a[1], Sys.Clz.fgb3), ' doesn\'t exists !'), ),
                            True)

                    elif a[0] == 'enc':
                        app.onCommandEnc()
                    elif a[0] == 'dec':
                        app.onCommandDec()
                    elif a[0] == 'split':
                        app.onCommandSplit()
                    elif a[0] == 'merge':
                        app.onCommandMerge()

                    Sys.dprint('PUT END SIGNAL')
                    if Sys.g.LOG_QUEUE is not None:
                        Sys.g.LOG_QUEUE.put(Sys.g.SIGNAL_STOP)

            else:
                self.parser.error_cmd(
                    (('unknow command ', (a[0], Sys.Clz.fgb3)), ))

        if not o.quiet: Sys.dprint()
Exemplo n.º 28
0
    def onCommandConf(self):
        """"""
        if self.o.load is not None or self.o.view is not None or self.o.save is not None:

            if self.o.view is not None:
                self.o.active_profile = self.o.view
            if self.o.load is not None:
                self.o.active_profile = self.o.load
            if self.o.save is not None:
                self.o.active_profile = self.o.save

            if self.o.active_profile == None:
                if self.ini.has("profile"):
                    self.o.active_profile = self.ini.get("profile")
                else:
                    self.o.active_profile = "default"

            if self.o.load:
                self.pheader()
                self.load_profile()

            elif self.o.view:
                self.pheader()
                if self.o.view == "all":
                    sections = self.ini.getSections()
                    if len(sections) > 0:
                        ap = self.ini.get("profile")
                        sep = ""
                        for p in sections:
                            if p == ap:
                                colr = Sys.Clz.fgB1
                                p = "*" + p
                            else:
                                colr = Sys.Clz.fgB3
                            Sys.echo(sep + p, colr, False)
                            if sep == "":
                                sep = ","
                        Sys.dprint()
                    else:
                        Sys.echo(" no profiles", Sys.Clz.fgB1)
                else:
                    print(self.ini.get("profile"))
                    self.ini.print(self.o.view)

            elif self.o.save:
                self.pheader()
                if (
                    not self.o.set_host
                    and not self.o.set_user
                    and not self.o.set_pass
                    and not self.o.set_port
                    and not self.o.set_boxname
                    and not self.o.set_name
                    and not self.o.gen_key
                    and not self.o.set_multi
                    and not self.o.remove_multi
                ):
                    self.parser.error(" no options specified")
                else:
                    if self.o.set_port and not represents_int(self.o.set_port):
                        self.parser.error(" port must be a number")
                        self.exit(1)
                    else:
                        if self.o.set_boxname:
                            self.ini.set("box", self.o.set_boxname, self.o.active_profile + ".imap")
                        if self.o.set_host:
                            self.ini.set("host", self.o.set_host, self.o.active_profile + ".imap")
                        if self.o.set_user:
                            self.ini.set("user", self.o.set_user, self.o.active_profile + ".imap")
                        if self.o.set_pass:
                            self.ini.set("pass", self.o.set_pass, self.o.active_profile + ".imap")
                        if self.o.set_port:
                            self.ini.set("port", self.o.set_port, self.o.active_profile + ".imap")
                        if self.o.set_name:
                            self.ini.set("name", self.o.set_name, self.o.active_profile + ".infos")

                        if self.ini.has("multi", self.o.active_profile + ".imap"):
                            m = self.ini.get("multi", self.o.active_profile + ".imap")
                        else:
                            m = None
                        if m is None:
                            m = []
                        else:
                            m = m.split(",")
                        m = [x for x in m if x]
                        if self.o.set_multi:
                            if self.check_imap(self.o.set_multi):
                                if not self.o.set_multi in m:
                                    m.append(self.o.set_multi)
                            else:
                                Sys.dprint()
                                Sys.echo("imap profile " + self.o.set_multi + " not found", Sys.Clz.fgB1)
                                Sys.dprint()
                        elif self.o.remove_multi and self.o.remove_multi in m:
                            m.remove(self.o.remove_multi)
                        self.ini.set("multi", ",".join(m), self.o.active_profile + ".imap")

                        if self.o.gen_key:
                            kg = KeyGen()
                            self.ini.set("key", kg.key, self.o.active_profile + ".keys")
                            self.ini.set("mark", kg.mark, self.o.active_profile + ".keys")
                            self.ini.set("salt", "-¤-ImpraStorage-¤-", self.o.active_profile + ".keys")
                        if self.check_profile(self.o.active_profile):
                            self.ini.set("profile", self.o.active_profile)
                        if not self.o.set_boxname and not self.ini.has("box", self.o.active_profile + ".imap"):
                            self.ini.set("box", self.rootBox, self.o.active_profile + ".imap")
                        self.ini.save()
                        self.ini.print(self.o.active_profile)

        elif self.o.check:
            self.pheader()
            self.check_profile(self.o.check, True)

        else:
            self.parser.print_usage("")
Exemplo n.º 29
0
    def print_options():
        """"""
        Sys.dprint('\n')
        Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)

        Sys.print('  MAIN OPTIONS :\n', Sys.CLZ_HELP_CMD)
        Sys.print(' ' * 4 + '-v'.ljust(13, ' ') + ', --version',
                  Sys.CLZ_HELP_ARG)
        Sys.print(' ' * 50 + 'display programm version', Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-d'.ljust(13, ' ') + ', --debug',
                  Sys.CLZ_HELP_ARG)
        Sys.print(' ' * 50 + 'enable debug mode', Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-f'.ljust(13, ' ') + ', --force',
                  Sys.CLZ_HELP_ARG)
        Sys.print(' ' * 50 + 'force rewriting existing files without alert',
                  Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-q'.ljust(13, ' ') + ', --quiet',
                  Sys.CLZ_HELP_ARG)
        Sys.print(' ' * 50 + 'don\'t print status messages to stdout',
                  Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-h'.ljust(13, ' ') + ', --help', Sys.CLZ_HELP_ARG)
        Sys.print(' ' * 50 + 'display help', Sys.CLZ_HELP_ARG_INFO)

        Sys.dprint('\n')
        Sys.print('  KEY OPTIONS :\n', Sys.CLZ_HELP_CMD)
        Sys.print(' ' * 4 + '-l ', Sys.CLZ_HELP_ARG, False)
        Sys.print('LENGTH'.ljust(10, ' '), Sys.CLZ_HELP_PARAM, False)
        Sys.print(', --length'.ljust(18, ' '), Sys.CLZ_HELP_ARG, False)
        Sys.print('LENGTH'.ljust(10, ' '), Sys.CLZ_HELP_PARAM)
        Sys.print(
            ' ' * 50 + 'specified key length (128 to 4096 - default:1024)',
            Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-o ', Sys.CLZ_HELP_ARG, False)
        Sys.print('FILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM, False)
        Sys.print(', --outputfile'.ljust(18, ' '), Sys.CLZ_HELP_ARG, False)
        Sys.print('FILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM)
        Sys.print(' ' * 50 + 'specified key output filename',
                  Sys.CLZ_HELP_ARG_INFO)

        Sys.dprint('\n')
        Sys.print('  ENCRYPT OPTIONS :\n', Sys.CLZ_HELP_CMD)
        Sys.print(' ' * 4 + '-a'.ljust(13, ' ') + ', --fullcompress',
                  Sys.CLZ_HELP_ARG)
        Sys.print(' ' * 50 + 'enable full compression mode',
                  Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-z'.ljust(13, ' ') + ', --compress',
                  Sys.CLZ_HELP_ARG)
        Sys.print(' ' * 50 + 'enable compression mode', Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-Z'.ljust(13, ' ') + ', --nocompress',
                  Sys.CLZ_HELP_ARG)
        Sys.print(' ' * 50 + 'disable compression mode', Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-r'.ljust(13, ' ') + ', --random',
                  Sys.CLZ_HELP_ARG)
        Sys.print(' ' * 50 + 'enable random mode', Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-R'.ljust(13, ' ') + ', --norandom',
                  Sys.CLZ_HELP_ARG)
        Sys.print(' ' * 50 + 'disable random mode', Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-m'.ljust(13, ' ') + ', --mix', Sys.CLZ_HELP_ARG)
        Sys.print(' ' * 50 + 'enable mix mode', Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-M'.ljust(13, ' ') + ', --nomix',
                  Sys.CLZ_HELP_ARG)
        Sys.print(' ' * 50 + 'disable mix mode', Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-j ', Sys.CLZ_HELP_ARG, False)
        Sys.print('COUNT'.ljust(10, ' '), Sys.CLZ_HELP_PARAM, False)
        Sys.print(', --multiprocess'.ljust(18, ' '), Sys.CLZ_HELP_ARG, False)
        Sys.print('COUNT'.ljust(10, ' '), Sys.CLZ_HELP_PARAM)
        Sys.print(' ' * 50 + 'number of process for encryption (2 to 8)',
                  Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-k ', Sys.CLZ_HELP_ARG, False)
        Sys.print('FILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM, False)
        Sys.print(', --keyfile'.ljust(18, ' '), Sys.CLZ_HELP_ARG, False)
        Sys.print('FILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM)
        Sys.print(' ' * 50 + 'key filename used to encrypt',
                  Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-o ', Sys.CLZ_HELP_ARG, False)
        Sys.print('FILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM, False)
        Sys.print(', --outputfile'.ljust(18, ' '), Sys.CLZ_HELP_ARG, False)
        Sys.print('FILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM)
        Sys.print(' ' * 50 + 'specified encrypted output filename',
                  Sys.CLZ_HELP_ARG_INFO)

        Sys.dprint('\n')
        Sys.print('  DECRYPT OPTIONS :\n', Sys.CLZ_HELP_CMD)
        Sys.print(' ' * 4 + '-j ', Sys.CLZ_HELP_ARG, False)
        Sys.print('COUNT'.ljust(10, ' '), Sys.CLZ_HELP_PARAM, False)
        Sys.print(', --multiprocess'.ljust(18, ' '), Sys.CLZ_HELP_ARG, False)
        Sys.print('COUNT'.ljust(10, ' '), Sys.CLZ_HELP_PARAM)
        Sys.print(' ' * 50 + 'number of process for decryption (2 to 8)',
                  Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-k ', Sys.CLZ_HELP_ARG, False)
        Sys.print('FILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM, False)
        Sys.print(', --keyfile'.ljust(18, ' '), Sys.CLZ_HELP_ARG, False)
        Sys.print('FILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM)
        Sys.print(' ' * 50 + 'key filename used to decrypt',
                  Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-o ', Sys.CLZ_HELP_ARG, False)
        Sys.print('FILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM, False)
        Sys.print(', --outputfile'.ljust(18, ' '), Sys.CLZ_HELP_ARG, False)
        Sys.print('FILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM)
        Sys.print(' ' * 50 + 'specified decrypted output filename',
                  Sys.CLZ_HELP_ARG_INFO)

        Sys.dprint('\n')
        Sys.print('  SPLIT OPTIONS :\n', Sys.CLZ_HELP_CMD)
        Sys.print(' ' * 4 + '-p ', Sys.CLZ_HELP_ARG, False)
        Sys.print('COUNT'.ljust(10, ' '), Sys.CLZ_HELP_PARAM, False)
        Sys.print(', --part'.ljust(18, ' '), Sys.CLZ_HELP_ARG, False)
        Sys.print('COUNT'.ljust(10, ' '), Sys.CLZ_HELP_PARAM)
        Sys.print(' ' * 50 + 'count part to split', Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-k ', Sys.CLZ_HELP_ARG, False)
        Sys.print('FILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM, False)
        Sys.print(', --keyfile'.ljust(18, ' '), Sys.CLZ_HELP_ARG, False)
        Sys.print('FILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM)
        Sys.print(' ' * 50 + 'key filename used to split',
                  Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-o ', Sys.CLZ_HELP_ARG, False)
        Sys.print('TARFILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM, False)
        Sys.print(', --outputfile'.ljust(18, ' '), Sys.CLZ_HELP_ARG, False)
        Sys.print('TARFILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM)
        Sys.print(' ' * 50 + 'specified tar output filename',
                  Sys.CLZ_HELP_ARG_INFO)

        Sys.dprint('\n')
        Sys.print('  MERGE OPTIONS :\n', Sys.CLZ_HELP_CMD)
        Sys.print(' ' * 4 + '-k ', Sys.CLZ_HELP_ARG, False)
        Sys.print('FILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM, False)
        Sys.print(', --keyfile'.ljust(18, ' '), Sys.CLZ_HELP_ARG, False)
        Sys.print('FILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM)
        Sys.print(' ' * 50 + 'key filename used to merge',
                  Sys.CLZ_HELP_ARG_INFO)
        Sys.print(' ' * 4 + '-o ', Sys.CLZ_HELP_ARG, False)
        Sys.print('FILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM, False)
        Sys.print(', --outputfile'.ljust(18, ' '), Sys.CLZ_HELP_ARG, False)
        Sys.print('FILE'.ljust(10, ' '), Sys.CLZ_HELP_PARAM)
        Sys.print(' ' * 50 + 'specified decrypted output filename',
                  Sys.CLZ_HELP_ARG_INFO)

        Sys.dprint('\n')
Exemplo n.º 30
0
    def onCommandSplit(self):
        """"""
        done  = True
        Sys.cli_emit_progress(1)
        if not self.o.parts is None and not(int(self.o.parts)>=12 and int(self.o.parts) <=62) :
            self.parser.error_cmd((('invalid option ',('-p, --parts', Sys.Clz.fgb3), ' value (', ('12',Sys.Clz.fgb3),' to ', ('62',Sys.Clz.fgb3),')'),))
        else : self.o.parts = int(self.o.parts)

        if not Sys.g.QUIET : self.parser.print_header()
        if self.o.outputfile is not None :
            if self.o.outputfile[-5:]!='.tark' : self.o.outputfile += '.tark'
            if Io.file_exists(self.o.outputfile) and not self.o.force:
                Sys.pwarn((('the file ',(self.o.outputfile, Sys.Clz.fgb3), ' already exists !'),))
                done  = Sys.pask('Are you sure to rewrite this file')
                self.stime = Sys.datetime.now()

        if done :

            try :
                Sys.ptask()
                Sys.cli_emit_progress(2)
                key    = Io.get_data(self.o.keyfile)
                km     = Kirmah(key)
                hlst   = km.ck.getHashList(Sys.basename(self.a[1]), self.o.parts, True)
                Sys.cli_emit_progress(3)
                kcf    = km.splitFile(self.a[1], hlst)
                t      = int(Sys.time())
                times  = (t,t)
                p      = 85
                Sys.cli_emit_progress(p)
                Io.touch(kcf, times)
                frav = 0.24
                for row in hlst['data']:
                    p += frav
                    Io.touch(row[1]+km.EXT,times)
                    Sys.cli_emit_progress(p)
                if self.o.outputfile is not None :
                    d = Sys.datetime.now()
                    if Sys.g.DEBUG : Sys.wlog(Sys.dprint())
                    Sys.ptask('Preparing tark file')
                    hlst['data'] = sorted(hlst['data'], key=lambda lst: lst[4])
                    with tarfile.open(self.o.outputfile, mode='w') as tar:
                        tar.add(kcf, arcname=Sys.basename(kcf))
                        p    = 90
                        for row in hlst['data']:
                            tar.add(row[1]+km.EXT, arcname=Sys.basename(row[1]+km.EXT))
                            p += frav
                            Sys.cli_emit_progress(p)
                    Sys.pstep('Packing destination file', d, True)
                    d = Sys.datetime.now()
                    Sys.ptask('Finalize')
                    for row in hlst['data']:
                        Io.removeFile(row[1]+km.EXT)
                        p += frav
                        Sys.cli_emit_progress(p)
                    Io.removeFile(kcf)
                    Sys.pstep('Cleaning', d, True)

            except Exception as e :
                done = False
                if Sys.g.DEBUG :
                    print('split exception')
                    print(e)

                    #~ raise e
                elif not Sys.g.QUIET :
                    Sys.pwarn((str(e),))

        if not Sys.g.QUIET:
            Sys.cli_emit_progress(100)
            self.onend_cmd('Kirmah Split', self.stime, done, self.o.outputfile)
Exemplo n.º 31
0
    def print_help():
        """"""
        Cli.print_header()
        Sys.echo(Cli.conf.PRG_DESC, Sys.CLZ_HELP_DESC)
        Cli.print_usage('',True)
        Cli.print_options()
        Cli.printLineSep(Const.LINE_SEP_CHAR,Const.LINE_SEP_LEN)
        Sys.dprint()
        Sys.echo('  EXEMPLES :\n', Sys.CLZ_HELP_CMD)
        CHQ  = "'"

        Sys.echo(' '*4+'command add :', Sys.CLZ_HELP_CMD)

        Sys.echo(' '*8+'# add (upload) a file', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('add ', Sys.CLZ_HELP_CMD, False)
        Sys.echo(Cli.HOME+'Share'+Sys.sep+'2009-mountains.avi', Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# add a file with a label (label will be the filename on downloading)', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('add ', Sys.CLZ_HELP_CMD, False)
        Sys.echo(Cli.HOME+'Share'+Sys.sep+'2009-mountains.avi', Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -c ', Sys.CLZ_HELP_ARG, False)
        Sys.echo('videos/perso/2009', Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# add a file with a label on a category', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('add ', Sys.CLZ_HELP_CMD, False)
        Sys.echo(Cli.HOME+'Share'+Sys.sep+'2009-mountains.avi '+CHQ+'summer 2009 - in mountains'+CHQ, Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -c ', Sys.CLZ_HELP_ARG, False)
        Sys.echo('videos/perso/2009', Sys.CLZ_HELP_PARAM)



        Cli.printLineSep(Const.LINE_SEP_CHAR,Const.LINE_SEP_LEN)
        Sys.echo('\n'+' '*4+'command edit :', Sys.CLZ_HELP_CMD)

        Sys.echo(' '*8+'# edit label on file with id 15', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('edit '                    , Sys.CLZ_HELP_CMD, False)
        Sys.echo('15'                       , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -l '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('newname'                  , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# edit category on file with id 15', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('edit '                    , Sys.CLZ_HELP_CMD, False)
        Sys.echo('15'                       , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -c '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('new/category'             , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# edit label and category on file with id 15', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('edit '                    , Sys.CLZ_HELP_CMD, False)
        Sys.echo('15'                       , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -c '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('new/category'             , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -l '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo(CHQ+'my newName'+CHQ       , Sys.CLZ_HELP_PARAM)


        
        Cli.printLineSep(Const.LINE_SEP_CHAR,Const.LINE_SEP_LEN)
        Sys.echo('\n'+' '*4+'command get :', Sys.CLZ_HELP_CMD)

        Sys.echo(' '*8+'# get file with id 15', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('get '                     , Sys.CLZ_HELP_CMD, False)
        Sys.echo('15'                       , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# get files with id 15,16,17,18,19', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('get '                     , Sys.CLZ_HELP_CMD, False)
        Sys.echo('15-19'                    , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# get files with id 22,29,30', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('get '                     , Sys.CLZ_HELP_CMD, False)
        Sys.echo('22,29,30'                 , Sys.CLZ_HELP_PARAM)
        
        Sys.echo(' '*8+'# get files with id 22,29,30,31,32,33,34,35,48', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('get '                     , Sys.CLZ_HELP_CMD, False)
        Sys.echo('22,29-35,48'              , Sys.CLZ_HELP_PARAM)



        Cli.printLineSep(Const.LINE_SEP_CHAR,Const.LINE_SEP_LEN)
        Sys.echo('\n'+' '*4+'command list :', Sys.CLZ_HELP_CMD)

        Sys.echo(' '*8+'# list all files'   , Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('list '                    , Sys.CLZ_HELP_CMD)

        Sys.echo(' '*8+'# list all files (sorted by LABEL)', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('list'                     , Sys.CLZ_HELP_CMD, False)
        Sys.echo(' -o '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('LABEL'                    , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# list all files on category `videos/perso` ', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('list'                     , Sys.CLZ_HELP_CMD, False)
        Sys.echo(' -c '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('videos/perso'             , Sys.CLZ_HELP_PARAM)
        
        Sys.echo(' '*8+'# list all files sent by `Imran`', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('list'                     , Sys.CLZ_HELP_CMD, False)
        Sys.echo(' -u '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('Imran'                    , Sys.CLZ_HELP_PARAM)
        
        Sys.echo(' '*8+'# list all files sent by `Imran` on category `videos/perso` (reverse sorted by SIZE)', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('list'                     , Sys.CLZ_HELP_CMD, False)
        Sys.echo(' -O '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('SIZE'                     , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -c '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('videos/perso'             , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -u '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('Imran'                    , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# list all files sent by `Imran` on category `videos/perso` (reverse sorted by SIZE) and account imran22', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('list'                     , Sys.CLZ_HELP_CMD, False)
        Sys.echo(' -O '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('SIZE'                     , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -c '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('videos/perso'             , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -u '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('Imran'                    , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -a '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('imran22'                  , Sys.CLZ_HELP_PARAM)



        Cli.printLineSep(Const.LINE_SEP_CHAR,Const.LINE_SEP_LEN)
        Sys.echo('\n'+' '*4+'command remove :', Sys.CLZ_HELP_CMD)

        Sys.echo(' '*8+'# remove file with id 15 (removing command only take a single id)', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('remove '                  , Sys.CLZ_HELP_CMD, False)
        Sys.echo('15'                       , Sys.CLZ_HELP_PARAM)



        Cli.printLineSep(Const.LINE_SEP_CHAR,Const.LINE_SEP_LEN)
        Sys.echo('\n'+' '*4+'command info :', Sys.CLZ_HELP_CMD)

        Sys.echo(' '*8+'# get info about file with id 15', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('info '                    , Sys.CLZ_HELP_CMD, False)
        Sys.echo('15'                       , Sys.CLZ_HELP_PARAM)



        Cli.printLineSep(Const.LINE_SEP_CHAR,Const.LINE_SEP_LEN)
        Sys.echo('\n'+' '*4+'command search :', Sys.CLZ_HELP_CMD)

        Sys.echo(' '*8+'# search all files wich contains `mountains`', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('search '                  , Sys.CLZ_HELP_CMD, False)
        Sys.echo('mountains'                , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# search all files wich contains `old mountain` on category `videos/perso`', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('search '                  , Sys.CLZ_HELP_CMD, False)
        Sys.echo(CHQ+'old mountain'+CHQ     , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -c '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('videos/perso'             , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# search all files wich contains `old mountain` sent by user `Imran`', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('search '                  , Sys.CLZ_HELP_CMD, False)
        Sys.echo(CHQ+'old mountain'+CHQ     , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -u '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('Imran'                    , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# search all files wich contains `old mountain` (reverse sorted by SIZE)', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('search '                  , Sys.CLZ_HELP_CMD, False)
        Sys.echo(CHQ+'old mountain'+CHQ     , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -O '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('SIZE'                     , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# search all files wich contains `old mountain` sent by user `Imran` and on category `videos/perso` (reverse', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+'# sorted by LABEL)' , Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('search '                  , Sys.CLZ_HELP_CMD, False)
        Sys.echo(CHQ+'old mountain'+CHQ     , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -c '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('videos/perso'             , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -u '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('Imran'                    , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -O '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('LABEL'                    , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# search all files starting by `old mountain`', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('search '                  , Sys.CLZ_HELP_CMD, False)
        Sys.echo(CHQ+'^old mountain'+CHQ    , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# search all files starting by `old mountain`', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('search '                  , Sys.CLZ_HELP_CMD, False)
        Sys.echo(CHQ+'^old mountain'+CHQ    , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# search all files ending by `old mountain`', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('search '                  , Sys.CLZ_HELP_CMD, False)
        Sys.echo(CHQ+'old mountain$'+CHQ    , Sys.CLZ_HELP_PARAM)
        


        Cli.printLineSep(Const.LINE_SEP_CHAR,Const.LINE_SEP_LEN)
        Sys.echo('\n'+' '*4+'command export :', Sys.CLZ_HELP_CMD)

        Sys.echo(' '*8+'# export the current index (as an encrypt file)', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('export '                  , Sys.CLZ_HELP_CMD)



        Cli.printLineSep(Const.LINE_SEP_CHAR,Const.LINE_SEP_LEN)
        Sys.echo('\n'+' '*4+'command import :', Sys.CLZ_HELP_CMD)
        
        Sys.echo(' '*8+'# import an index (build by export command)', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+'# carreful with this command, current index will be unrecoverable', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ' , Sys.CLZ_HELP_PRG, False)
        Sys.echo('import '                   , Sys.CLZ_HELP_CMD, False)
        Sys.echo('20121010222244_gmail.index', Sys.CLZ_HELP_PARAM)



        Cli.printLineSep(Const.LINE_SEP_CHAR,Const.LINE_SEP_LEN)
        Sys.echo('\n'+' '*4+'command conf :', Sys.CLZ_HELP_CMD)
        
        Sys.echo(' '*8+'# this command is tipycally a profile creation (or rewrite if profile exists)', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+'# set a userName, generate a new Key and set imap account with  host,port,user,password for profile imrangmail', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+'# then set it as current profile', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('conf'                     , Sys.CLZ_HELP_CMD, False)
        Sys.echo(' -S '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('imrangmail'               , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -N '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('Imran'                    , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -K -H '                  , Sys.CLZ_HELP_ARG, False)
        Sys.echo('imap.gmail.com'           , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -P '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('993'                      , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -U '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('imran22'                  , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -X '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('imranpassword'            , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# check config profile imranimap (current profile doesn\'t change)', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('conf'                     , Sys.CLZ_HELP_CMD, False)
        Sys.echo(' -C '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('imranimap'                , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# load config profile imranimap and set it as current profile', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('conf'                     , Sys.CLZ_HELP_CMD, False)
        Sys.echo(' -L '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('imranimap'                , Sys.CLZ_HELP_PARAM)
        
        Sys.echo(' '*8+'# list all config profile', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('conf'                     , Sys.CLZ_HELP_CMD, False)
        Sys.echo(' -V '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('all'                      , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# view config profile imrangmail (current profile doesn\'t change)', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('conf '                    , Sys.CLZ_HELP_CMD, False)
        Sys.echo('-V '                      , Sys.CLZ_HELP_ARG, False)
        Sys.echo('imrangmail'               , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# generate a new Key for profile imrangmail and set it as current profile (carreful with this command ', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+'# if your account has no empty index - all files will be unrecoverable without the appropriate key)', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('conf'                     , Sys.CLZ_HELP_CMD, False)
        Sys.echo(' -S '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('imrangmail'               , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -K '                     , Sys.CLZ_HELP_ARG)
        
        Sys.echo(' '*8+'# add multi account to profile imrangmail (accounts must be on same host)', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('conf'                     , Sys.CLZ_HELP_CMD, False)
        Sys.echo(' -S '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('imrangmail'               , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -M '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('imranimap'                , Sys.CLZ_HELP_PARAM)

        Sys.echo(' '*8+'# remove multi account to profile imrangmail', Sys.CLZ_HELP_COMMENT)
        Sys.echo(' '*8+conf.PRG_CLI_NAME+' ', Sys.CLZ_HELP_PRG, False)
        Sys.echo('conf'                     , Sys.CLZ_HELP_CMD, False)
        Sys.echo(' -S '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('imrangmail'               , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(' -R '                     , Sys.CLZ_HELP_ARG, False)
        Sys.echo('imranimap'                , Sys.CLZ_HELP_PARAM)

        Cli.printLineSep(Const.LINE_SEP_CHAR,Const.LINE_SEP_LEN)
        Sys.dprint()
Exemplo n.º 32
0
    def print_help():
        """"""
        Cli.print_header()
        Sys.print(Cli.conf.PRG_DESC, Sys.CLZ_HELP_DESC)
        Cli.print_usage('', True)
        Cli.print_options()
        Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
        Sys.dprint()
        Sys.print('  EXEMPLES :\n', Sys.CLZ_HELP_CMD)
        CHQ = "'"

        Sys.print(' ' * 4 + 'command key :', Sys.CLZ_HELP_CMD)

        Sys.print(' ' * 8 + '# generate a new crypted key of 2048 length',
                  Sys.CLZ_HELP_COMMENT)
        Sys.print(' ' * 8 + conf.PRG_CLI_NAME + ' ', Sys.CLZ_HELP_PRG, False)
        Sys.print('key -l ', Sys.CLZ_HELP_CMD, False)
        Sys.print('2048 ', Sys.CLZ_HELP_PARAM)

        Sys.print(
            ' ' * 8 +
            '# generate a new crypted key (default length is 1024) in a specified location',
            Sys.CLZ_HELP_COMMENT)
        Sys.print(' ' * 8 + conf.PRG_CLI_NAME + ' ', Sys.CLZ_HELP_PRG, False)
        Sys.print('key -o ', Sys.CLZ_HELP_CMD, False)
        Sys.print(Cli.DIRKEY + '.myNewKey', Sys.CLZ_HELP_PARAM)

        Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
        Sys.print('\n' + ' ' * 4 + 'command encrypt :', Sys.CLZ_HELP_CMD)

        Sys.print(
            ' ' * 8 +
            '# encrypt specified file with default crypted key and default options',
            Sys.CLZ_HELP_COMMENT)
        Sys.print(' ' * 8 + conf.PRG_CLI_NAME + ' ', Sys.CLZ_HELP_PRG, False)
        Sys.print('enc ', Sys.CLZ_HELP_CMD, False)
        Sys.print(Cli.HOME + 'mySecretTextFile.txt', Sys.CLZ_HELP_PARAM)

        Sys.print(
            ' ' * 8 +
            '# encrypt specified file with specified crypted key (full compression, no random but mix mode)',
            Sys.CLZ_HELP_COMMENT)
        Sys.print(' ' * 8 + '# on specified output location',
                  Sys.CLZ_HELP_COMMENT)
        Sys.print(' ' * 8 + conf.PRG_CLI_NAME + ' ', Sys.CLZ_HELP_PRG, False)
        Sys.print('enc ', Sys.CLZ_HELP_CMD, False)
        Sys.print('mySecretTextFile.txt', Sys.CLZ_HELP_PARAM, False)
        Sys.print(' -aRm -k ', Sys.CLZ_HELP_ARG, False)
        Sys.print(Cli.DIRKEY + '.myNewKey', Sys.CLZ_HELP_PARAM, False)
        Sys.print(' -o ', Sys.CLZ_HELP_ARG, False)
        Sys.print('test.kmh', Sys.CLZ_HELP_PARAM)

        Sys.print(
            ' ' * 8 +
            '# encrypt specified file with default crypted key (no compression but random & mix mode and multiprocessing)',
            Sys.CLZ_HELP_COMMENT)
        Sys.print(' ' * 8 + conf.PRG_CLI_NAME + ' ', Sys.CLZ_HELP_PRG, False)
        Sys.print('enc ', Sys.CLZ_HELP_CMD, False)
        Sys.print('myBigTextFile.txt', Sys.CLZ_HELP_PARAM, False)
        Sys.print(' -Zrm -j ', Sys.CLZ_HELP_ARG, False)
        Sys.print('4', Sys.CLZ_HELP_PARAM)

        Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
        Sys.print('\n' + ' ' * 4 + 'command decrypt :', Sys.CLZ_HELP_CMD)

        Sys.print(
            ' ' * 8 + '# decrypt specified file with default crypted key',
            Sys.CLZ_HELP_COMMENT)
        Sys.print(' ' * 8 + conf.PRG_CLI_NAME + ' ', Sys.CLZ_HELP_PRG, False)
        Sys.print('dec ', Sys.CLZ_HELP_CMD, False)
        Sys.print(Cli.HOME + 'mySecretFile.kmh', Sys.CLZ_HELP_PARAM)

        Sys.print(
            ' ' * 8 +
            '# decrypt specified file with specified crypted key on specified output location',
            Sys.CLZ_HELP_COMMENT)
        Sys.print(' ' * 8 + Cli.conf.PRG_CLI_NAME + ' ', Sys.CLZ_HELP_PRG,
                  False)
        Sys.print('dec ', Sys.CLZ_HELP_CMD, False)
        Sys.print('myEncryptedSecretFile.kmh', Sys.CLZ_HELP_PARAM, False)
        Sys.print(' -k ', Sys.CLZ_HELP_ARG, False)
        Sys.print(Cli.HOME + '.kirmah' + Sys.sep + '.myNewKey',
                  Sys.CLZ_HELP_PARAM, False)
        Sys.print(' -o ', Sys.CLZ_HELP_ARG, False)
        Sys.print('myDecryptedSecretFile.txt', Sys.CLZ_HELP_PARAM)

        Sys.print(
            ' ' * 8 +
            '# decrypt specified file with default crypted key and multiprocessing',
            Sys.CLZ_HELP_COMMENT)
        Sys.print(' ' * 8 + conf.PRG_CLI_NAME + ' ', Sys.CLZ_HELP_PRG, False)
        Sys.print('dec ', Sys.CLZ_HELP_CMD, False)
        Sys.print('myEncryptedSecretFile.kmh', Sys.CLZ_HELP_PARAM, False)
        Sys.print(' -j ', Sys.CLZ_HELP_ARG, False)
        Sys.print('4', Sys.CLZ_HELP_PARAM)

        Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
        Sys.print('\n' + ' ' * 4 + 'command split :', Sys.CLZ_HELP_CMD)

        Sys.print(' ' * 8 + '# split specified file with default crypted key',
                  Sys.CLZ_HELP_COMMENT)
        Sys.print(' ' * 8 + conf.PRG_CLI_NAME + ' ', Sys.CLZ_HELP_PRG, False)
        Sys.print('split ', Sys.CLZ_HELP_CMD, False)
        Sys.print(Cli.HOME + 'myBigBinaryFile.avi', Sys.CLZ_HELP_PARAM)

        Sys.print(
            ' ' * 8 +
            '# split specified file on 55 parts with specified crypted key on specified output location',
            Sys.CLZ_HELP_COMMENT)
        Sys.print(' ' * 8 + conf.PRG_CLI_NAME + ' ', Sys.CLZ_HELP_PRG, False)
        Sys.print('split ', Sys.CLZ_HELP_CMD, False)
        Sys.print('myBigBinaryFile.avi', Sys.CLZ_HELP_PARAM, False)
        Sys.print(' -p ', Sys.CLZ_HELP_ARG, False)
        Sys.print('55', Sys.CLZ_HELP_PARAM, False)
        Sys.print(' -k ', Sys.CLZ_HELP_ARG, False)
        Sys.print(Cli.DIRKEY + '.myNewKey', Sys.CLZ_HELP_PARAM, False)
        Sys.print(' -o ', Sys.CLZ_HELP_ARG, False)
        Sys.print('myBigBinaryFile.encrypted', Sys.CLZ_HELP_PARAM)

        Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
        Sys.print('\n' + ' ' * 4 + 'command merge :', Sys.CLZ_HELP_CMD)

        Sys.print(
            ' ' * 8 +
            '# merge specified splitted file with default crypted key',
            Sys.CLZ_HELP_COMMENT)
        Sys.print(' ' * 8 + conf.PRG_CLI_NAME + ' ', Sys.CLZ_HELP_PRG, False)
        Sys.print('merge ', Sys.CLZ_HELP_CMD, False)
        Sys.print(
            Cli.HOME +
            '6136bd1b53d84ecbad5380594eea7256176c19e0266c723ea2e982f8ca49922b.kcf',
            Sys.CLZ_HELP_PARAM)

        Sys.print(
            ' ' * 8 +
            '# merge specified tark splitted file with specified crypted key on specified output location',
            Sys.CLZ_HELP_COMMENT)
        Sys.print(' ' * 8 + conf.PRG_CLI_NAME + ' ', Sys.CLZ_HELP_PRG, False)
        Sys.print('merge ', Sys.CLZ_HELP_CMD, False)
        Sys.print('myBigBinaryFile.encrypted.tark', Sys.CLZ_HELP_PARAM, False)
        Sys.print(' -k ', Sys.CLZ_HELP_ARG, False)
        Sys.print(Cli.DIRKEY + '.myNewKey', Sys.CLZ_HELP_PARAM, False)
        Sys.print(' -o ', Sys.CLZ_HELP_ARG, False)
        Sys.print('myBigBinaryFile.decrypted.avi', Sys.CLZ_HELP_PARAM)

        Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
        Sys.dprint()
Exemplo n.º 33
0
    def print_help():
        """"""
        Cli.print_header()
        Sys.echo(Cli.conf.PRG_DESC, Sys.CLZ_HELP_DESC)
        Cli.print_usage("", True)
        Cli.print_options()
        Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
        Sys.dprint()
        Sys.echo("  EXEMPLES :\n", Sys.CLZ_HELP_CMD)
        CHQ = "'"

        Sys.echo(" " * 4 + "command key :", Sys.CLZ_HELP_CMD)

        Sys.echo(" " * 8 + "# generate a new crypted key of 2048 length", Sys.CLZ_HELP_COMMENT)
        Sys.echo(" " * 8 + conf.PRG_CLI_NAME + " ", Sys.CLZ_HELP_PRG, False)
        Sys.echo("key -l ", Sys.CLZ_HELP_CMD, False)
        Sys.echo("2048 ", Sys.CLZ_HELP_PARAM)

        Sys.echo(
            " " * 8 + "# generate a new crypted key (default length is 1024) in a specified location",
            Sys.CLZ_HELP_COMMENT,
        )
        Sys.echo(" " * 8 + conf.PRG_CLI_NAME + " ", Sys.CLZ_HELP_PRG, False)
        Sys.echo("key -o ", Sys.CLZ_HELP_CMD, False)
        Sys.echo(Cli.DIRKEY + ".myNewKey", Sys.CLZ_HELP_PARAM)

        Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
        Sys.echo("\n" + " " * 4 + "command encrypt :", Sys.CLZ_HELP_CMD)

        Sys.echo(
            " " * 8 + "# encrypt specified file with default crypted key and default options", Sys.CLZ_HELP_COMMENT
        )
        Sys.echo(" " * 8 + conf.PRG_CLI_NAME + " ", Sys.CLZ_HELP_PRG, False)
        Sys.echo("enc ", Sys.CLZ_HELP_CMD, False)
        Sys.echo(Cli.HOME + "mySecretTextFile.txt", Sys.CLZ_HELP_PARAM)

        Sys.echo(
            " " * 8 + "# encrypt specified file with specified crypted key (full compression, no random but mix mode)",
            Sys.CLZ_HELP_COMMENT,
        )
        Sys.echo(" " * 8 + "# on specified output location", Sys.CLZ_HELP_COMMENT)
        Sys.echo(" " * 8 + conf.PRG_CLI_NAME + " ", Sys.CLZ_HELP_PRG, False)
        Sys.echo("enc ", Sys.CLZ_HELP_CMD, False)
        Sys.echo("mySecretTextFile.txt", Sys.CLZ_HELP_PARAM, False)
        Sys.echo(" -aRm -k ", Sys.CLZ_HELP_ARG, False)
        Sys.echo(Cli.DIRKEY + ".myNewKey", Sys.CLZ_HELP_PARAM, False)
        Sys.echo(" -o ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("test.kmh", Sys.CLZ_HELP_PARAM)

        Sys.echo(
            " " * 8
            + "# encrypt specified file with default crypted key (no compression but random & mix mode and multiprocessing)",
            Sys.CLZ_HELP_COMMENT,
        )
        Sys.echo(" " * 8 + conf.PRG_CLI_NAME + " ", Sys.CLZ_HELP_PRG, False)
        Sys.echo("enc ", Sys.CLZ_HELP_CMD, False)
        Sys.echo("myBigTextFile.txt", Sys.CLZ_HELP_PARAM, False)
        Sys.echo(" -Zrm -j ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("4", Sys.CLZ_HELP_PARAM)

        Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
        Sys.echo("\n" + " " * 4 + "command decrypt :", Sys.CLZ_HELP_CMD)

        Sys.echo(" " * 8 + "# decrypt specified file with default crypted key", Sys.CLZ_HELP_COMMENT)
        Sys.echo(" " * 8 + conf.PRG_CLI_NAME + " ", Sys.CLZ_HELP_PRG, False)
        Sys.echo("dec ", Sys.CLZ_HELP_CMD, False)
        Sys.echo(Cli.HOME + "mySecretFile.kmh", Sys.CLZ_HELP_PARAM)

        Sys.echo(
            " " * 8 + "# decrypt specified file with specified crypted key on specified output location",
            Sys.CLZ_HELP_COMMENT,
        )
        Sys.echo(" " * 8 + Cli.conf.PRG_CLI_NAME + " ", Sys.CLZ_HELP_PRG, False)
        Sys.echo("dec ", Sys.CLZ_HELP_CMD, False)
        Sys.echo("myEncryptedSecretFile.kmh", Sys.CLZ_HELP_PARAM, False)
        Sys.echo(" -k ", Sys.CLZ_HELP_ARG, False)
        Sys.echo(Cli.HOME + ".kirmah" + Sys.sep + ".myNewKey", Sys.CLZ_HELP_PARAM, False)
        Sys.echo(" -o ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("myDecryptedSecretFile.txt", Sys.CLZ_HELP_PARAM)

        Sys.echo(
            " " * 8 + "# decrypt specified file with default crypted key and multiprocessing", Sys.CLZ_HELP_COMMENT
        )
        Sys.echo(" " * 8 + conf.PRG_CLI_NAME + " ", Sys.CLZ_HELP_PRG, False)
        Sys.echo("dec ", Sys.CLZ_HELP_CMD, False)
        Sys.echo("myEncryptedSecretFile.kmh", Sys.CLZ_HELP_PARAM, False)
        Sys.echo(" -j ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("4", Sys.CLZ_HELP_PARAM)

        Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
        Sys.echo("\n" + " " * 4 + "command split :", Sys.CLZ_HELP_CMD)

        Sys.echo(" " * 8 + "# split specified file with default crypted key", Sys.CLZ_HELP_COMMENT)
        Sys.echo(" " * 8 + conf.PRG_CLI_NAME + " ", Sys.CLZ_HELP_PRG, False)
        Sys.echo("split ", Sys.CLZ_HELP_CMD, False)
        Sys.echo(Cli.HOME + "myBigBinaryFile.avi", Sys.CLZ_HELP_PARAM)

        Sys.echo(
            " " * 8 + "# split specified file on 55 parts with specified crypted key on specified output location",
            Sys.CLZ_HELP_COMMENT,
        )
        Sys.echo(" " * 8 + conf.PRG_CLI_NAME + " ", Sys.CLZ_HELP_PRG, False)
        Sys.echo("split ", Sys.CLZ_HELP_CMD, False)
        Sys.echo("myBigBinaryFile.avi", Sys.CLZ_HELP_PARAM, False)
        Sys.echo(" -p ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("55", Sys.CLZ_HELP_PARAM, False)
        Sys.echo(" -k ", Sys.CLZ_HELP_ARG, False)
        Sys.echo(Cli.DIRKEY + ".myNewKey", Sys.CLZ_HELP_PARAM, False)
        Sys.echo(" -o ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("myBigBinaryFile.encrypted", Sys.CLZ_HELP_PARAM)

        Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
        Sys.echo("\n" + " " * 4 + "command merge :", Sys.CLZ_HELP_CMD)

        Sys.echo(" " * 8 + "# merge specified splitted file with default crypted key", Sys.CLZ_HELP_COMMENT)
        Sys.echo(" " * 8 + conf.PRG_CLI_NAME + " ", Sys.CLZ_HELP_PRG, False)
        Sys.echo("merge ", Sys.CLZ_HELP_CMD, False)
        Sys.echo(Cli.HOME + "6136bd1b53d84ecbad5380594eea7256176c19e0266c723ea2e982f8ca49922b.kcf", Sys.CLZ_HELP_PARAM)

        Sys.echo(
            " " * 8 + "# merge specified tark splitted file with specified crypted key on specified output location",
            Sys.CLZ_HELP_COMMENT,
        )
        Sys.echo(" " * 8 + conf.PRG_CLI_NAME + " ", Sys.CLZ_HELP_PRG, False)
        Sys.echo("merge ", Sys.CLZ_HELP_CMD, False)
        Sys.echo("myBigBinaryFile.encrypted.tark", Sys.CLZ_HELP_PARAM, False)
        Sys.echo(" -k ", Sys.CLZ_HELP_ARG, False)
        Sys.echo(Cli.DIRKEY + ".myNewKey", Sys.CLZ_HELP_PARAM, False)
        Sys.echo(" -o ", Sys.CLZ_HELP_ARG, False)
        Sys.echo("myBigBinaryFile.decrypted.avi", Sys.CLZ_HELP_PARAM)

        Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
        Sys.dprint()
Exemplo n.º 34
0
    def __init__(self, path, remote=False, rwargs=None, thread=None, loglvl=Const.LOG_DEFAULT):
        """"""
        AbstractCli.__init__(self, conf, self)

        Cli.HOME = conf.DEFVAL_USER_PATH
        Cli.DIRKEY = Cli.HOME + "." + conf.PRG_NAME.lower() + Sys.sep
        if not Sys.isUnix():
            CHQ = '"'
            self.HOME = "C:" + Sys.sep + conf.PRG_NAME.lower() + Sys.sep
            self.DIRKEY = self.HOME + "keys" + Sys.sep
        Sys.mkdir_p(Cli.DIRKEY)

        gpData = OptionGroup(self.parser, "")
        gpData.add_option("-a", "--fullcompress", action="store_true")
        gpData.add_option("-z", "--compress", action="store_true")
        gpData.add_option("-Z", "--nocompress", action="store_true")
        gpData.add_option("-r", "--random", action="store_true")
        gpData.add_option("-R", "--norandom", action="store_true")
        gpData.add_option("-m", "--mix", action="store_true")
        gpData.add_option("-M", "--nomix", action="store_true")
        gpData.add_option("-j", "--multiprocess", action="store")
        gpData.add_option("-k", "--keyfile", action="store")
        gpData.add_option("-l", "--length", action="store", default=1024)
        gpData.add_option("-p", "--parts", action="store", default=22)
        gpData.add_option("-o", "--outputfile", action="store")
        self.parser.add_option_group(gpData)

        # rewrite argv sended by remote
        if rwargs is not None:
            import sys

            sys.argv = rwargs

        (o, a) = self.parser.parse_args()

        Sys.g.QUIET = o.quiet
        Sys.g.THREAD_CLI = thread
        Sys.g.GUI = thread is not None

        init(conf.PRG_NAME, o.debug, remote, not o.no_color, loglvl)

        if not a:
            try:
                if not o.help or not o.version:
                    self.parser.error_cmd(("no command specified",), True)
                else:
                    Sys.clear()
                    Cli.print_help()
            except:
                if not o.version:
                    self.parser.error_cmd(("no command specified",), True)
                else:
                    Cli.print_header()

        else:
            if a[0] == "help":
                Sys.clear()
                Cli.print_help()

            elif a[0] in ["key", "enc", "dec", "split", "merge"]:

                app = CliApp(self.HOME, path, self, a, o)

                if a[0] == "key":
                    app.onCommandKey()
                else:
                    if not len(a) > 1:
                        self.parser.error_cmd((("an ", ("inputFile", Sys.Clz.fgb3), " is required !"),), True)
                    elif not Io.file_exists(a[1]):
                        self.parser.error_cmd((("the file ", (a[1], Sys.Clz.fgb3), " doesn't exists !"),), True)

                    elif a[0] == "enc":
                        app.onCommandEnc()
                    elif a[0] == "dec":
                        app.onCommandDec()
                    elif a[0] == "split":
                        app.onCommandSplit()
                    elif a[0] == "merge":
                        app.onCommandMerge()

                    Sys.dprint("PUT END SIGNAL")
                    if Sys.g.LOG_QUEUE is not None:
                        Sys.g.LOG_QUEUE.put(Sys.g.SIGNAL_STOP)

            else:
                self.parser.error_cmd((("unknow command ", (a[0], Sys.Clz.fgb3)),), True)

        if not o.quiet:
            Sys.dprint()
Exemplo n.º 35
0
    def print_options():
        """"""
        Sys.dprint('\n')
        Cli.printLineSep(Const.LINE_SEP_CHAR,Const.LINE_SEP_LEN)

        Sys.echo('  MAIN OPTIONS :\n'                                       , Sys.CLZ_HELP_CMD)
        Sys.echo(' '*4+'-h'.ljust(13,' ')+', --help'                        , Sys.CLZ_HELP_ARG)
        Sys.echo(' '*50+'display help'                                      , Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(' '*4+'-q'.ljust(13,' ')+', --quiet'                       , Sys.CLZ_HELP_ARG)
        Sys.echo(' '*50+'don\'t print status messages to stdout'            , Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(' '*4+'-v'.ljust(13,' ')+', --version'                     , Sys.CLZ_HELP_ARG)
        Sys.echo(' '*50+'display programm version'                          , Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(' '*4+'-d'.ljust(13,' ')+', --debug'                       , Sys.CLZ_HELP_ARG)
        Sys.echo(' '*50+'enable debug mode'                                 , Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(' '*4+'-f'.ljust(13,' ')+', --force'                       , Sys.CLZ_HELP_ARG)
        Sys.echo(' '*50+'force rewriting existing files without alert'      , Sys.CLZ_HELP_ARG_INFO)
        Sys.echo(' '*4+' '.ljust(13,' ')+', --no-color'                     , Sys.CLZ_HELP_ARG)
        Sys.echo(' '*50+'disable color mode'                                , Sys.CLZ_HELP_ARG_INFO)


        Sys.dprint('\n')
        Sys.echo('  COMMANDS OPTIONS:\n'                                    , Sys.CLZ_HELP_CMD)
        Sys.echo(' '*4+'-c '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('CATEGORY'.ljust(10,' ')                                   , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --category'.ljust(18,' ')                               , Sys.CLZ_HELP_ARG, False)
        Sys.echo('LENGTH'.ljust(10,' ')                                     , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'set a category'                                    , Sys.CLZ_HELP_ARG_INFO)
        
        Sys.echo(' '*4+'-o '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('USER'.ljust(10,' ')                                       , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --user'.ljust(18,' ')                                   , Sys.CLZ_HELP_ARG, False)
        Sys.echo('USER'.ljust(10,' ')                                       , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'set a user'                                        , Sys.CLZ_HELP_ARG_INFO)

        Sys.echo(' '*4+'-l '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('LABEL'.ljust(10,' ')                                      , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --label'.ljust(18,' ')                                  , Sys.CLZ_HELP_ARG, False)
        Sys.echo('LABEL'.ljust(10,' ')                                      , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'set a label (edit mode only)'                      , Sys.CLZ_HELP_ARG_INFO)

        Sys.echo(' '*4+'-o '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('COLON'.ljust(10,' ')                                      , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --order'.ljust(18,' ')                                  , Sys.CLZ_HELP_ARG, False)
        Sys.echo('COLON'.ljust(10,' ')                                      , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'order by specified colon'                          , Sys.CLZ_HELP_ARG_INFO)
        
        Sys.echo(' '*4+'-O '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('COLON'.ljust(10,' ')                                      , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --order-rev'.ljust(18,' ')                              , Sys.CLZ_HELP_ARG, False)
        Sys.echo('COLON'.ljust(10,' ')                                      , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'reverse order by specified colon'                  , Sys.CLZ_HELP_ARG_INFO)
        
        Sys.echo(' '*4+'-a '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('ACCOUNT'.ljust(10,' ')                                    , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --account'.ljust(18,' ')                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('ACCOUNT'.ljust(10,' ')                                    , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'set an profile account'                            , Sys.CLZ_HELP_ARG_INFO) 
        
        Sys.dprint('\n')
        Sys.echo('  CONF OPTIONS:\n'                                        , Sys.CLZ_HELP_CMD)
        Sys.echo(' '*4+'-L '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('PROFILE'.ljust(10,' ')                                    , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --load'.ljust(18,' ')                                   , Sys.CLZ_HELP_ARG, False)
        Sys.echo('PROFILE'.ljust(10,' ')                                    , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'load the specified profile'                        , Sys.CLZ_HELP_ARG_INFO)
        
        Sys.echo(' '*4+'-V '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('PROFILE'.ljust(10,' ')                                    , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --view'.ljust(18,' ')                                   , Sys.CLZ_HELP_ARG, False)
        Sys.echo('PROFILE'.ljust(10,' ')                                    , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'view the specified profile (or \'all\' for view availables)', Sys.CLZ_HELP_ARG_INFO)        
        
        Sys.echo(' '*4+'-C '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('PROFILE'.ljust(10,' ')                                    , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --check'.ljust(18,' ')                                  , Sys.CLZ_HELP_ARG, False)
        Sys.echo('PROFILE'.ljust(10,' ')                                    , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'check the specified profile'                       , Sys.CLZ_HELP_ARG_INFO)
        
        Sys.echo(' '*4+'-S '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('PROFILE'.ljust(10,' ')                                    , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --save'.ljust(18,' ')                                   , Sys.CLZ_HELP_ARG, False)
        Sys.echo('PROFILE'.ljust(10,' ')                                    , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'save the specified profile'                        , Sys.CLZ_HELP_ARG_INFO)

        Sys.dprint('\n')
        Sys.echo('  CONF -S OPTIONS:\n'                                     , Sys.CLZ_HELP_CMD)
        Sys.echo(' '*4+'-N '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('NAME'.ljust(10,' ')                                       , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --set-name'.ljust(18,' ')                               , Sys.CLZ_HELP_ARG, False)
        Sys.echo('NAME'.ljust(10,' ')                                       , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'set imprastorage username'                         , Sys.CLZ_HELP_ARG_INFO)

        Sys.echo(' '*4+'-K '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo(''.ljust(10,' ')                                           , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --gen-key'.ljust(18,' ')                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo(''.ljust(10,' ')                                           , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'generate a new key'                                , Sys.CLZ_HELP_ARG_INFO)
        
        Sys.echo(' '*4+'-H '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('HOST'.ljust(10,' ')                                       , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --set-host'.ljust(18,' ')                               , Sys.CLZ_HELP_ARG, False)
        Sys.echo('HOST'.ljust(10,' ')                                       , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'set imap host'                                     , Sys.CLZ_HELP_ARG_INFO)
        
        Sys.echo(' '*4+'-U '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('USER'.ljust(10,' ')                                       , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --set-user'.ljust(18,' ')                               , Sys.CLZ_HELP_ARG, False)
        Sys.echo('USER'.ljust(10,' ')                                       , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'set imap user'                                     , Sys.CLZ_HELP_ARG_INFO)

        Sys.echo(' '*4+'-X '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('PASSWORD'.ljust(10,' ')                                   , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --set-password'.ljust(18,' ')                           , Sys.CLZ_HELP_ARG, False)
        Sys.echo('PASSWORD'.ljust(10,' ')                                   , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'set imap password'                                 , Sys.CLZ_HELP_ARG_INFO)

        Sys.echo(' '*4+'-P '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('PORT'.ljust(10,' ')                                       , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --set-port'.ljust(18,' ')                               , Sys.CLZ_HELP_ARG, False)
        Sys.echo('PORT'.ljust(10,' ')                                       , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'set imap port'                                     , Sys.CLZ_HELP_ARG_INFO)

        Sys.echo(' '*4+'-B '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('BOXNAME'.ljust(10,' ')                                    , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --set-box'.ljust(18,' ')                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('BOXNAME'.ljust(10,' ')                                    , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'set imap boxname (default:__impra2__)'             , Sys.CLZ_HELP_ARG_INFO)
        
        Sys.echo(' '*4+'-P '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('PROFILE'.ljust(10,' ')                                    , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --set-multi'.ljust(18,' ')                              , Sys.CLZ_HELP_ARG, False)
        Sys.echo('PROFILE'.ljust(10,' ')                                    , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'add imap multi account'                            , Sys.CLZ_HELP_ARG_INFO)

        Sys.echo(' '*4+'-R '                                                , Sys.CLZ_HELP_ARG, False)
        Sys.echo('PROFILE'.ljust(10,' ')                                    , Sys.CLZ_HELP_PARAM, False)
        Sys.echo(', --remove-multi'.ljust(18,' ')                           , Sys.CLZ_HELP_ARG, False)
        Sys.echo('PROFILE'.ljust(10,' ')                                    , Sys.CLZ_HELP_PARAM)
        Sys.echo(' '*50+'remove imap multi account'                         , Sys.CLZ_HELP_ARG_INFO)

        Sys.dprint('\n')
Exemplo n.º 36
0
 def onCommandAdd(self):
     """"""
     if not len(self.a) > 1:
         self.parser.error_cmd((self.a[0] + " command need one argument",), True)
     else:
         vfile = self.a[1]
         if not Io.file_exists(vfile):
             if Sys.isdir(vfile):
                 for f in Sys.listdir(vfile):
                     if not Sys.isdir(f):
                         label, ext = Sys.getFileExt(Sys.basename(f))
                         if self.o.category is None:
                             self.o.category = ""
                         done = self.impst.addFile(vfile + Sys.sep + f, label, self.o.category)
                         if done:
                             self.Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
                             Sys.dprint(" ", end="")
                             Sys.echo(" == OK == ", Sys.Clz.bg2 + Sys.Clz.fgb7)
                             Sys.dprint()
             else:
                 self.parser.error_cmd((self.a[0] + " is not a file or a directory",), True)
         else:
             if not len(self.a) > 2:
                 label = Sys.basename(vfile)
             else:
                 label = self.a[2]
             if self.o.category is None:
                 self.o.category = ""
             Sys.clear()
             self.pheader()
             done = self.impst.addFile(vfile, label, self.o.category)
             if done:
                 self.Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
                 Sys.dprint(" ", end="")
                 Sys.echo(" == OK == ", Sys.Clz.bg2 + Sys.Clz.fgb7)
                 Sys.dprint()
             else:
                 self.Cli.printLineSep(Const.LINE_SEP_CHAR, Const.LINE_SEP_LEN)
                 Sys.dprint(" ", end="")
                 Sys.echo(" == KO == ", Sys.Clz.bg1 + Sys.Clz.fgb7)
                 Sys.dprint()
Exemplo n.º 37
0
    def __init__(self, path, remote=False, rwargs=None, thread=None, loglvl=Const.LOG_ALL):
        """"""
        AbstractCli.__init__(self, conf, self)

        Cli.HOME   = conf.DEFVAL_USER_PATH
        Cli.DIRKEY = Cli.HOME+'.'+conf.PRG_NAME.lower()+Sys.sep
        if not Sys.isUnix() :
            Cli.CHQ    = '"'
            Cli.HOME   = 'C:'+Sys.sep+conf.PRG_NAME.lower()+Sys.sep
            Cli.DIRKEY = self.HOME+'keys'+Sys.sep
        Sys.mkdir_p(Cli.DIRKEY)

        gpData = OptionGroup(self.parser, '')
        gpData = OptionGroup(self.parser, '')
        gpConf = OptionGroup(self.parser, '')
        
        gpData.add_option('-c', '--category'      , action='store',       metavar='CATG            ')
        gpData.add_option('-u', '--user'          , action='store',       metavar='OWNER           ')
        gpData.add_option('-l', '--label'         , action='store',       metavar='LABEL           ')
        gpData.add_option('-o', '--order'         , action='store',       metavar='ORDER           '  , default='ID')
        gpData.add_option('-O', '--order-inv'     , action='store',       metavar='ORDER_INVERSE   ')
        gpData.add_option('-a', '--account'       , action='store',       metavar='ACCOUNT         ')
        self.parser.add_option_group(gpData)        

        gpConf.add_option('-V', '--view'          , action='store'                                  )
        gpConf.add_option('-L', '--load'          , action='store'                                  )
        gpConf.add_option('-S', '--save'          , action='store'                                  )
        gpConf.add_option('-C', '--check'         , action='store'                                  )
        gpConf.add_option('-H', '--set-host'      , action='store',       metavar='HOST            ')
        gpConf.add_option('-U', '--set-user'      , action='store',       metavar='USER            ')
        gpConf.add_option('-X', '--set-pass'      , action='store',       metavar='PASS            ')
        gpConf.add_option('-P', '--set-port'      , action='store',       metavar='PORT            ')
        gpConf.add_option('-N', '--set-name'      , action='store',       metavar='NAME            ')
        gpConf.add_option('-M', '--set-multi'     , action='store',       metavar='PROFILE         ')
        gpConf.add_option('-R', '--remove-multi'  , action='store',       metavar='PROFILE         ')
        gpConf.add_option('-B', '--set-boxname'   , action='store',       metavar='BOXNAME         ')
        gpConf.add_option('-K', '--gen-key'       , action='store_true',  default=False)
        self.parser.add_option_group(gpConf)

        # rewrite argv sended by remote
        if rwargs is not None :
            import sys
            sys.argv = rwargs

        (o, a) = self.parser.parse_args()

        Sys.g.QUIET      = o.quiet
        Sys.g.THREAD_CLI = thread
        Sys.g.GUI        = thread is not None

        init(conf.PRG_NAME, o.debug, remote, not o.no_color, loglvl)
        Const.LINE_SEP_LEN = 120

        if not a:
            try :
                if not o.help or not o.version:
                    self.parser.error_cmd(('no command specified',), True)
                else :
                    Sys.clear()
                    Cli.print_help()
            except :
                if not o.version :
                    self.parser.error_cmd(('no command specified',), True)
                else :
                    Cli.print_header()

        else:
            if a[0] == 'help':
                Sys.clear()
                Cli.print_help()

            elif a[0] in ['add','conf','import','info', 'edit','export','get','list','remove','search'] :
                app = CliApp(self.HOME, path, self.parser, Cli, a, o)

                if a[0]=='add':
                    app.onCommandAdd()
                elif a[0]=='conf':
                    app.onCommandConf()
                elif a[0]=='info':
                    app.onCommandInfo()
                elif a[0]=='import':
                    app.onCommandImport()
                elif a[0]=='edit':
                    app.onCommandEdit()
                elif a[0]=='export':
                    app.onCommandExport()
                elif a[0]=='get':
                    app.onCommandGet()
                elif a[0]=='list':
                    app.onCommandList()
                elif a[0]=='remove':
                    app.onCommandRemove()
                elif a[0]=='search':
                    app.onCommandSearch()
                    
                Sys.dprint('PUT END SIGNAL')
                if Sys.g.LOG_QUEUE is not None :
                    Sys.g.LOG_QUEUE.put(Sys.g.SIGNAL_STOP)

            else :
                self.parser.error_cmd((('unknow command ',(a[0],Sys.Clz.fgb3)),), True)

        if not o.quiet : Sys.dprint()
Exemplo n.º 38
0
    def print(self,order='ID', matchIds=None):
        """Print index content as formated bloc"""
        #~ Sys.clear()
        #~ Cli.print_header()
        #~ AbstractCli.printLineSep(Const.LINE_SEP_CHAR,Const.LINE_SEP_LEN)

        inv    = order.startswith('-')
        if inv : order = order[1:]
        orderIndex = self.COLS.index(order)
        if orderIndex is None : orderIndex = self.COLS.index('ID')
        d = sorted([(self.dic.get(k),k) for i, k in enumerate(self.dic) if not k.startswith(self.SEP_KEY_INTERN)], reverse=inv, key=lambda lst:lst[0][orderIndex])

        sizeid = 1+Sys.ceil(len(str(len(d))))
        if sizeid < 3 : sizeid = 3
        addsize = abs(3 - sizeid);
        
        sort = '^' if inv else '_' #'ↆ'

        space = (4+addsize, 8, 38, 10, 3, 5, 11, 24-addsize, 13)
        for i, s in enumerate(self.COLS[:-1]):
            symb, c = sort if order == s else ' ', Sys.Clz.BG4+Sys.Clz.fgB7 if order != s else Sys.Clz.BG7+Sys.Clz.fgB4
            Sys.echo ((' '+s+symb).ljust(space[i],' ') , c, False, False)
        Sys.echo('', c)
        Sys.echo(Const.LINE_SEP_CHAR*Const.LINE_SEP_LEN, Sys.CLZ_HEAD_LINE)

        a = ''
        tsize = 0
        psize = 0
        acc   = {}
        wrap  = '… ' if Sys.isUnix() else '/ '
        for v,k in d :
            if matchIds==None or v[self.UID] in matchIds:
                if v[self.SIZE] == '' : v[self.SIZE] = 0
                a = ''
                Sys.echo(str(v[self.UID]).rjust(sizeid+1,' ')                               , Sys.Clz.bg1+Sys.Clz.fgB7, False)
                Sys.echo(' '+str(k).ljust(9,' ')[0:6]+wrap                                  , Sys.Clz.fgN2, False)
                if len(v[self.LABEL])>36 : a = wrap
                try:
                    Sys.echo(str(v[self.LABEL][:36]+a).ljust(38,' ')                        , Sys.Clz.fgN7, False)
                except:
                    pass
                    j = 0
                    for c in v[self.LABEL][:36] :                        
                        try:
                            Sys.echo(str(c)                                                 , Sys.Clz.fgN7, False, False)
                        except:
                            Sys.echo('?'                                                    , Sys.Clz.fgN7, False, False)
                        j += 1
                    Sys.echo(''.ljust(38-j,' ')                      , Sys.Clz.fgN7, False, False)

                a = ''
                Sys.echo(Sys.readableBytes(v[self.SIZE])[:9].rjust(9,' ')+' '*2             , Sys.Clz.fgN5, False)
                Sys.echo(str(v[self.PARTS]).rjust(2 ,'0') +' '*2                            , Sys.Clz.fgN1, False)
                Sys.echo(str(v[self.EXT][:6]).ljust(7,' ')                                  , Sys.Clz.fgn3, False)
                Sys.echo(self.getUser(str(v[self.USER])).ljust(11  ,' ')                    , Sys.Clz.fgn7, False)
                #~ Sys.echo(str(v[self.CATG]).ljust(30 ,' ')                       , Clz.fgN3)
                if len(v[self.CATG])>22 : a = wrap
                Sys.echo(str(v[self.CATG][:22]+a).ljust(24 ,' ')                            , Sys.Clz.fgN3, False)
                a = ''
                if len(v)-2==self.ACCOUNT:
                    if v[self.ACCOUNT] in self.acclist :
                        if len(self.acclist[v[self.ACCOUNT]])>11 : a = '…'
                        Sys.echo(str(self.acclist[v[self.ACCOUNT]][:11]+a).ljust(12 ,' ')    , Sys.Clz.fgN4)
                    else :
                        Sys.echo(str(v[self.ACCOUNT][:11]+'!').ljust(12 ,' ')                , Sys.Clz.fgN4)
                    if v[self.ACCOUNT] in acc :
                        acc[v[self.ACCOUNT]] += int(v[self.SIZE])
                    else : acc[v[self.ACCOUNT]] = int(v[self.SIZE])
                else: Sys.dprint()
            
                psize += int(v[self.SIZE])
            tsize += int(v[self.SIZE])
        if len(d)==0:
            Sys.echo(' empty', Sys.Clz.fgB1)

        Sys.echo(Const.LINE_SEP_CHAR*Const.LINE_SEP_LEN, Sys.CLZ_HEAD_LINE)
        c = Sys.Clz.fgB2
        if psize != tsize : c = Sys.Clz.fgB7
        Sys.echo(' size : ', Sys.Clz.fgB3, False)
        Sys.echo(Sys.readableBytes(psize)[:9].rjust(9,' '), c, False)
        if psize != tsize :
            Sys.echo(' / ', Sys.Clz.fgB3, False)
            Sys.echo(Sys.readableBytes(tsize), Sys.Clz.fgB2, False)
        Sys.dprint()
        Sys.echo(Const.LINE_SEP_CHAR*Const.LINE_SEP_LEN, Sys.CLZ_HEAD_LINE)