#!/usr/bin/env python3
import argparse
import json
import os.path
import shlex
import subprocess
import time
from pkg_resources import parse_version
import socket


def parse_args():
    parser = argparse.ArgumentParser(add_help=False, description='Работа с заданиями автоматизации ALDPro') 
    parser.add_argument('-v', '--version', action='version',
                    version='%(prog)s 1.0', help="Показать версию программы")
    parser.add_argument('-h', '--help', action='help', default=argparse.SUPPRESS,
                    help='Показать справку')
    parser._optionals.title = 'Опциональные аргументы'


# Форсированное применение
    parser.add_argument("--list", help="Список неустановленных заданий автоматизации", action='store_true')

    args = parser.parse_args()

    list = args.list
    
    return list

def run_command_with_show_stdout(command):
    quoted_cmd = shlex.quote(command) 
    retcode = subprocess.call(shlex.split(quoted_cmd), shell=True)
    if retcode != 0:
        raise Exception('Произошла ошибка. Пожалуйста, попробуйте выполнить команду повторно. \n')

def run():
    list = parse_args()

    if list == True:
        print('Список неустановленных заданий автоматизации')  
        run_command_with_show_stdout(
            'aldpro-salt-call automation_tasks.get_all_latest_automation_tasks')
    elif list == False: 
        print('Форсированная установка заданий автоматизации')
        run_command_with_show_stdout(
            'aldpro-salt-call automation_tasks.run')

if __name__ == '__main__':
    run()
