def run(self): '''Parse the arguments and increment using `FileHandler.increment`.''' if self.parentFlags['file']: lf = Filehandler(settings, file_location=self.parentFlags['file']) else: lf = Filehandler(settings) if not len(self.args) == 1 or self.flags['help']: print(self.usage) return if not lf.file_found: # File not found? No possible label to increment. return 1 labelname = self.args[0] if lf.increment(labelname): if not self.flags['silent']: print("Label '{name}' incremented".format(name=labelname)) else: if not self.flags['silent']: print("Label '{name}' could not be incremented" .format(name=labelname)) if not self.flags['dry-run']: lf.save()
def run(self): '''Parse the arguments and enable using `Filehandler.disable`.''' if self.parentFlags['file']: lf = Filehandler(settings, file_location=self.parentFlags['file']) else: lf = Filehandler(settings) if not len(self.args) == 1 or self.flags['help']: print self.usage return if not lf.file_found: # File not found? No possible label to enable. return 1 labelname = self.args[0] if lf.disable(labelname, False): if not self.flags['silent']: print("Label '{name}' enabled".format(name=labelname)) else: if not self.flags['silent']: print("Label '{name}' could not be enabled" .format(name=labelname)) if not self.flags['dry-run']: lf.save()
def run(self): if self.parentFlags['file']: lf = Filehandler(settings, file_location=self.parentFlags['file']) else: lf = Filehandler(settings) if not lf.file_found: if not lf.promptForCreation(silent=self.flags['silent']): return 1 if self.flags['interactive']: InteractiveEditor(settings, lf, interactive=False).remove() return 0 if not self.args or self.flags['help']: print(self.usage) return 0 for arg in set(self.args): if lf.remove(arg): if not self.flags['silent']: print("Label '{name}' removed".format(name=arg)) else: if not self.flags['silent']: print("Label '{name}' doesn't exist in labelfile" .format(name=arg)) if not self.flags['dry-run']: lf.save()
def run(self): '''Parse the arguments and update them using `FileHandler.update`.''' if self.parentFlags['file']: lf = Filehandler(settings, file_location=self.parentFlags['file']) else: lf = Filehandler(settings) if not len(self.args) == 2 or self.flags['help']: print self.usage return if not lf.file_found: if not lf.promptForCreation(silent=self.flags['silent']): return 1 labelname = self.args[0] try: tmp_length, tmp_algo, tmp_seqno = self.args[1].split(':') except ValueError: print ('Invalid update specification: %s' % self.args[1]) return 2 try: length = int(tmp_length) if tmp_length else None except ValueError: length = None if tmp_algo and tmp_algo in algos.algorithms: algo = tmp_algo else: algo = None seqno = None if algo != 'dispass1': try: seqno = tmp_seqno if tmp_seqno else None except ValueError: pass if lf.update(labelname, length=length, algo=algo, seqno=seqno): if not self.flags['silent']: print("Label '{name}' updated".format(name=labelname)) else: if not self.flags['silent']: print("Label '{name}' could not be updated" .format(name=labelname)) if not self.flags['dry-run']: lf.save()
def run(inst, *args, **kwargs): if inst.parentFlags['file']: lf = Filehandler(settings, file_location=inst.parentFlags['file']) else: lf = Filehandler(settings) if not inst.flags['help']: if not lf.file_found: if not lf.promptForCreation(silent=inst.flags['silent']): return 1 if not lf.is_writeable(): print('error: can\'t save to "{loc}", not writeable' .format(loc=lf.file_location)) return 1 func(inst, lf, *args, **kwargs) if not inst.flags['dry-run']: lf.save()
def run(self): '''Parse labels and add them using `FileHandler.add`. When the -i flag is passed, add them using `InteractiveEditor.add` ''' newlabels = [] '''A list of labelnames that have been added.''' if self.parentFlags['file']: lf = Filehandler(settings, file_location=self.parentFlags['file']) else: lf = Filehandler(settings) if not lf.file_found: if not lf.promptForCreation(silent=self.flags['silent']): return 1 if self.flags['interactive']: intedit = InteractiveEditor(settings, lf, interactive=False) newlabels.append(intedit.add()) else: if not self.args or self.flags['help']: print(self.usage) return for arg in set(self.args): labelspec = arg.split(':') params = len(labelspec) length = 0 try: length = params >= 2 and int(labelspec[1]) except ValueError: pass if not length: length = settings.passphrase_length algo = params >= 3 and labelspec[2] or settings.algorithm if not algo in algos.algorithms: algo = settings.algorithm seqno = 0 if algo != 'dispass1': try: seqno = params >= 4 and int(labelspec[3]) except ValueError: pass if not seqno: seqno = settings.sequence_number if lf.add(labelname=labelspec[0], length=length, algo=algo, seqno=seqno): newlabels.append(labelspec[0]) if not self.flags['silent']: print("Label '{name}' saved".format(name=labelspec[0])) else: if not self.flags['silent']: print("Label '{name}' already exists in labelfile" .format(name=labelspec[0])) if not self.flags['dry-run']: lf.save() if self.flags['generate'] and newlabels: console = CLI(lf) console.verifyPassword = True password = console.passwordPrompt() for label in newlabels: console.generate(password, lf.labeltup(label)) del password if not console.output(): if not self.flags['silent']: print('Error: could not generate passphrase') return 1 else: return 0