From 98742f31a64e722d43e39504f9d8db6fbfbc82f2 Mon Sep 17 00:00:00 2001 From: ggil Date: Mon, 29 Jul 2024 10:30:33 +0200 Subject: [PATCH] refs #521 - Modify sendFileUFTP.py --- bin/sendFileUFTP.py | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/bin/sendFileUFTP.py b/bin/sendFileUFTP.py index 1514fa9..5f18752 100644 --- a/bin/sendFileUFTP.py +++ b/bin/sendFileUFTP.py @@ -63,6 +63,26 @@ def show_help(): print(help_text) +def check_params(): + """ Comprueba que se haya enviado la cantidad correcta de parámetros, y en el formato correcto. + Si no es así, muestra un mensaje de error, y sale del script. + LLama a la función "show_help" cuando se ejecuta el script con el parámetro "help". + """ + # Si se ejecuta el script con el parámetro "help", se muestra la ayuda, y se sale del script: + if len(sys.argv) == 2 and sys.argv[1] == "help": + show_help() + sys.exit(0) + # Si se ejecuta la función con más o menos de 2 parámetros, se muestra un mensaje de error, y se sale del script: + if len(sys.argv) != 3: + print(f"{script_name} Error: Formato incorrecto: Se debe especificar 2 parámetros (image_name|/image_path/image_name port:ip:bitrate)") + sys.exit(1) + # Si en el segundo parámetro no hay 3 elementos (separados por ":"), devolvermos un error, y salimos del script: + param_list = sys.argv[2].split(':') + if len(param_list) != 3: + print(f"{script_name} Error: Datos Multicast incorrectos: \"{sys.argv[2]}\" (se debe especificar \"puerto:ip:bitrate\")") + sys.exit(3) + + def build_file_path(): """ Construye la ruta completa al archivo a enviar (agregando "/opt/opengnsys/images/" si no se ha especificado en el parámetro). @@ -98,16 +118,9 @@ def calculate_bitrate(bitrate): def main(): """ """ - # Si se ejecuta el script con el parámetro "help", se muestra la ayuda, y se sale del script: - if len(sys.argv) == 2 and sys.argv[1] == "help": - show_help() - sys.exit(0) - - # Si se ejecuta la función con más o menos de 2 parámetros, se muestra un mensaje de error, y se sale del script: - if len(sys.argv) != 3: - print(f"{script_name} Error: Formato incorrecto: Se debe especificar 2 parámetros (image_name|/image_path/image_name port:ip:bitrate)") - sys.exit(1) - + # Evaluamos si se ha enviado la cantidad correcta de parámetros, y en el formato correcto: + check_params() + # Obtenemos la ruta completa al archivo a enviar: file_path = build_file_path() @@ -116,14 +129,9 @@ def main(): print(f"{script_name} Error: Fichero \"{file_path}\" no accesible") sys.exit(2) - # Si en el segundo parámetro no hay 3 elementos (separados por ":"), devolvermos un error, y salimos del script: - params = sys.argv[2].split(':') - if len(params) != 3: - print(f"{script_name} Error: Datos Multicast incorrectos: \"{sys.argv[2]}\" (se debe especificar \"puerto:ip:bitrate\")") - sys.exit(3) - # Almacenamos los elementos del segundo parámetro en variables: - port, ip, bitrate = params + param_list = sys.argv[2].split(':') + port, ip, bitrate = param_list # Calculamos el valor de la variable "bitrate", en base a la letra especificada (que luego eliminamos de la variable): bitrate = calculate_bitrate(bitrate)