def default(self, line): if line == "EOF": print() return self.exit() msg("Invalid command: %s"%(line.split(" ")[0])) return self.do_help("")
def do_unlock(self, line): parser = ArgumentParser(prog="unlock", description="Unlock the working keyring", epilog="example: unlock") try: args = parser.parse_args(line.split()) except SystemExit: return try: self.get_wkeyring().unlock() except GKRCMDError as ex: msg("FAIL: %s\n"%(ex)) msg("%s\n"%(self.wkeyring.fmt()))
def do_keyring(self, line): parser = ArgumentParser(prog="keyring", description="Set or show (no arguments) the working keyring", epilog="example: keyring default") parser.add_argument("keyring", metavar="KEYRING", help="keyring name") try: args = parser.parse_args([line]) except SystemExit: return if args.keyring: try: self.set_wkeyring(args.keyring) except GKRCMDError as ex: msg("FAIL: %s\n"%(ex)) return msg("Current Keyring:\n%s\n"%(self.wkeyring.fmt()))
def do_ls(self,line): parser = ArgumentParser(prog="ls", description="Show keys information", epilog="example: ls -a *") parser.add_argument("-a", "--all", action="store_true", help="list all the key info (including secret)") parser.add_argument("filters", metavar="KEY", nargs="*", default=["*"], help="key name or filter, ex: http://www.google.com") try: args = parser.parse_args(line.split()) except SystemExit: return try: db = self.get_wkeys() for pattern in args.filters: db = db.filter(lambda k: k.match(pattern)) if args.all: print("\n".join([ "%s"%(k.fmt()) for k in db ])) else: print("\n".join([ "%s"%(k.fmt_simple()) for k in db ])) except GKRCMDError as ex: msg("FAIL: %s\n"%(ex))
def load(self): try: manager.Manager.load(self) except KeyringNotFoundError as ex: msg("Current Keyring: none") return except GKRCMDError as ex: msg("FAIL: %s\n"%(ex)) return msg("Current Keyring:\n%s\n"%(self.wkeyring.fmt()))
def do_help(self, line): sep = "\n " msg("To get specific help type: COMMAND --help\n\n") msg("Auxiliary commands:"+sep+sep.join(["exit", "quit", "help"]) + "\n") msg("Keyrings commands:"+sep+sep.join(["reload", "keyring", "keyring_ls", "lock", "unlock"]) + "\n") msg("Keys commands:"+sep+sep.join(["ls"]) + "\n")
def _print_message(self, message, file=None): if message: msg(message)