#============================================================================ # This file is part of Pwman3. # # Pwman3 is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License, version 2 # as published by the Free Software Foundation; # # Pwman3 is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Pwman3; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #============================================================================ # Copyright (C) 2013 Oz Nahum #============================================================================ # pylint: disable=I0011 """ Define the base CLI interface for pwman3 """ from pwman.util.crypto import CryptoUnsupportedException class HelpUI(object): """ this class holds all the UI help functionality. in PwmanCliNew. The later inherits from this class and allows it to print help messages to the console. """ def usage(self, string): print "Usage: %s" % (string) def help_open(self): self.usage("open ") print "Launch default browser with 'xdg-open url',\n" \ + "the url must contain http:// or https://." def help_o(self): self.help_open() def help_copy(self): self.usage("copy ") print "Copy password to X clipboard (xsel required)" def help_cp(self): self.help_copy() def help_cls(self): self.usage("cls") print "Clear the Screen from information." def help_list(self): self.usage("list ...") print "List nodes that match current or specified filter." \ + " l is an alias." def help_EOF(self): self.help_exit() def help_delete(self): self.usage("delete ...") print "Deletes nodes. rm is an alias." self._mult_id_help() def help_h(self): self.help_help() def help_help(self): self.usage("help [topic]") print "Prints a help message for a command." def help_e(self): self.help_edit() def help_n(self): self.help_new() def help_p(self): self.help_print() def help_l(self): self.help_list() def help_edit(self): self.usage("edit ... ") print "Edits a nodes." self._mult_id_help() def help_import(self): self.usage("import [filename] ...") print "Imports a nodes from a file." def help_export(self): self.usage("export ... ") print "Exports a list of ids to an external format. If no IDs or" \ + " tags are specified, then all nodes under the current" \ + " filter are exported." self._mult_id_help() def help_new(self): self.usage("new") print """Creates a new node., You can override default config settings the following way: pwman> n {'leetify':False, 'numerics':True}""" def help_rm(self): self.help_delete() def help_print(self): self.usage("print ...") print "Displays a node. ", self._mult_id_help() def _mult_id_help(self): print "Multiple ids and nodes can be specified, separated by a space."\ + "A range of ids can be specified in the format n-N. e.g. " \ + "'10-20' would specify all nodes having ids from 10 to 20 " \ + "inclusive. Tags are considered one-by-one. e.g. 'foo 2 bar'" \ + " would yield to all nodes with tag 'foo', node 2 and all "\ + "nodes with tag 'bar'." def help_exit(self): self.usage("exit") print "Exits the application." def help_save(self): self.usage("save [filename]") print "Saves the current configuration to [filename]. If no filename "\ + "is given, the configuration is saved to the file from which "\ + "the initial configuration was loaded." def help_set(self): self.usage("set [configoption] [value]") print "Sets a configuration option. If no value is specified, the "\ + "current value for [configoption] is output. If neither "\ + "[configoption] nor [value] are specified, the whole current "\ + "configuration is output. [configoption] must be of the "\ + "format
.