• File: pyegglocale.py
  • Path: /stuffs/pyegglocale.py
  • File size: 3.9 KB
  • MIME-type: text/x-script.python
  • Charset: utf-8
 
Open Back
import subprocess

def request_password():
    # Solicita la contraseña al usuario
    try:
        password = input("Introduce tu contraseña de sudo: ")
        return password
    except KeyboardInterrupt:
        print("\nOperación cancelada.")
        exit()

def execute_command(command, password):
    try:
        # Ejecuta el comando con sudo usando la contraseña proporcionada
        result = subprocess.run(f'echo {password} | sudo -S {command}', shell=True, check=True, text=True)
        if result.returncode == 0:
            print("\n--- Comando ejecutado con éxito ---\n")
    except subprocess.CalledProcessError as e:
        print(f"\nError al ejecutar el comando: {e}")

def show_menu(language):
    # Opciones de menú en diferentes idiomas
    options = {
        "es": [
            "Limpiar egg existente",
            "Limpiar caché",
            "Generar Skel",
            "Crear entorno de generación",
            "Editar archivo de configuración",
            "Generar ISO",
            "Salir"
        ],
        "it": [
            "Pulire l'egg esistente",
            "Pulire la cache",
            "Generare Skel",
            "Creare ambiente di sviluppo",
            "Modificare file di configurazione",
            "Generare ISO",
            "Esci"
        ],
        "en": [
            "Clean existing egg",
            "Clean cache",
            "Generate Skel",
            "Create generation environment",
            "Edit configuration file",
            "Generate ISO",
            "Exit"
        ],
        "pt": [
            "Limpar egg existente",
            "Limpar cache",
            "Gerar Skel",
            "Criar ambiente de geração",
            "Editar arquivo de configuração",
            "Gerar ISO",
            "Sair"
        ]
    }

    print("\nOpciones de Egg-Generator:")
    for idx, option in enumerate(options[language], 1):
        print(f"{idx}. {option}")

    # Solicita una opción al usuario
    try:
        option = int(input("\nElige una opción (1-7): "))
        return option
    except ValueError:
        print("Opción no válida.")
        return None

def main():
    # Selección de idioma
    languages = {
        "es": "Español",
        "it": "Italiano",
        "en": "Inglés",
        "pt": "Portugués"
    }

    print("Selecciona el idioma / Select your language:")
    for code, lang in languages.items():
        print(f"{code}: {lang}")

    language = input("\nElige un idioma (es/it/en/pt): ").strip().lower()
    if language not in languages:
        print("Idioma no válido, seleccionando español por defecto.")
        language = "es"

    password = request_password()
    
    while True:
        option = show_menu(language)

        if option == 1:
            execute_command("eggs kill -n", password)
        elif option == 2:
            execute_command("eggs tools clean -n", password)
        elif option == 3:
            execute_command("eggs tools skel -n", password)
        elif option == 4:
            execute_command("eggs dad -d", password)
        elif option == 5:
            execute_command("doublecmd", password)
        elif option == 6:
            execute_command("eggs produce --noicon -n", password)
        elif option == 7:
            exit_msg = {
                "es": "Saliendo...",
                "it": "Uscita...",
                "en": "Exiting...",
                "pt": "Saindo..."
            }
            print(exit_msg[language])
            break
        else:
            invalid_msg = {
                "es": "Opción no válida. Por favor, elige una opción entre 1 y 7.",
                "it": "Opzione non valida. Si prega di scegliere un'opzione tra 1 e 7.",
                "en": "Invalid option. Please choose an option between 1 and 7.",
                "pt": "Opção inválida. Por favor, escolha uma opção entre 1 e 7."
            }
            print(invalid_msg[language])

if __name__ == "__main__":
    main()