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])
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)
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)
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')
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)
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()
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
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()
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)
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)
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
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
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)
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)
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)
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)
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()
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()
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()
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
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())
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())
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()
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()
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")
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)
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()
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("")
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')
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)
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()
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()
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()
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()
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')
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()
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()
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)