# -*- coding: UTF-8 -*- # # Copyright (C) 2007 by Jan Dittberner. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, # USA. # # Version: $Id$ import CliCommand, sys from gnuviechadmin import client class ClientCli(CliCommand.CliCommand): """Command line interface command for client creation.""" def shortopts(self): return "f:l:a:z:c:e:p:o:t:m:x:" def longopts(self): return ["firstname=", "lastname=", "address=", "zip=", "city=", "email=", "phone=", "address2=", "organisation=", "country=", "title=", "mobile=", "fax="] def usage(self): print """Usage: %s client [-h|--help] [-v|--verbose] [-t |--title=<title>] -f <firstname>|--firstname=<firstname> -l <lastname>|--lastname=<lastname> -a <address1>|--address=<address1> [--address2=<address2>] -z <zip>|--zip=<zip> -c <city>|--city=<city> [--country=<isocode>] [-o <organisation>|--organisation=<organisation>] -e <email>|--email=<email> -p <phone>|--phone=<phone> [-m <mobile>|--mobile=<mobile>] [-x <fax>|--fax=<fax>] General options: -h, --help show this usage message and exit -v, --verbose verbose operation Mandatory client data options: -f, --firstname firstname -l, --lastname lastname -a, --address street address -z, --zip zip or postal code -c, --city city or location -e, --email contact email address -p, --phone telephone number Optional client data options: --address2 optional second line of the street address -o, --organisation option organisation --country country (defaults to de) -t, --title optional title -m, --mobile optional mobile number -x, --fax optional fax number """ % sys.argv[0] def handleoption(self, o, a): if o in ("-f", "--firstname"): self.data["firstname"] = a elif o in ("-l", "--lastname"): self.data["lastname"] = a elif o in ("-a", "--address"): self.data["address1"] = a elif o in ("-z", "--zip"): self.data["zip"] = a elif o in ("-c", "--city"): self.data["city"] = a elif o == "--country": self.data["country"] = a elif o in ("-t", "--title"): self.data["title"] = a elif o in ("-m", "--mobile"): self.data["mobile"] = a elif o in ("-e", "--email"): self.data["email"] = a elif o in ("-o", "--organisation"): self.data["organisation"] = a elif o in ("-x", "--fax"): self.data["fax"] = a elif o in ("-p", "--phone"): self.data["phone"] = a def checkrequired(self): required = ['firstname', 'lastname', 'address1', 'zip', 'city', 'phone', 'email'] if self.verbose: print self.data for req in required: if not req in self.data: return False return True def execute(self): myclient = client.create(**self.data) if self.verbose: print myclient def __init__(self, argv): self.data = {} CliCommand.CliCommand.__init__(self, argv)