37 lines
1.6 KiB
Python
37 lines
1.6 KiB
Python
import argparse
|
|
|
|
|
|
class ArgParser:
|
|
parser = None
|
|
args = None
|
|
def __init__(self):
|
|
self.parser = argparse.ArgumentParser(add_help=False)
|
|
self.parser._action_groups.pop()
|
|
|
|
obligatoryArgs = self.parser.add_argument_group("Argumentos obligatorios")
|
|
obligatoryArgs.add_argument('-p', '--pin', help="Contraseña", type=int)
|
|
obligatoryArgs.add_argument('-t', '--type', help="Tipo marcado. 0 = Entrada, 1 = Salida", type=int)
|
|
|
|
optionalArgs = self.parser.add_argument_group("Argumentos opcionales")
|
|
optionalArgs.add_argument('-bt', '--basedtime', help="Hacer check o descheck según la hora del dia",
|
|
action="store_true")
|
|
optionalArgs.add_argument('-h', '--help', action="help", help="Esta ayuda")
|
|
optionalArgs.add_argument('-d', '--debug', action='store_true')
|
|
|
|
optionalArgs.add_argument('-c', '--config', help="Rúta al archivo de configuración")
|
|
optionalArgs.add_argument('-u', '--user', help="Usuario")
|
|
optionalArgs.add_argument('-glo', '--geoLongitude', help="GEO Longitud", type=float)
|
|
optionalArgs.add_argument('-gla', '--geoLatitude', help="GEO Latitud", type=float)
|
|
optionalArgs.add_argument('-ga', '--geoAccuracy', help="GEO Accuracy", type=float)
|
|
|
|
def check(self):
|
|
if self.args.type is None and self.args.basedtime is False:
|
|
print("Hay que indicar al menos un metodo de fichaje -t <0 o 1> o -bt")
|
|
exit(20)
|
|
|
|
def parse(self):
|
|
self.args = self.parser.parse_args()
|
|
self.check()
|
|
|
|
return self.args
|