Menú de consola de Python

Saludos, colegas. Mi nombre es Rustam, trabajo para una pequeña empresa que se dedica al desarrollo web y la promoción de sitios web.

Muy a menudo, cuando se trabaja en un proyecto, surgen tareas que requieren ingresar varios comandos en la consola, como, por ejemplo, reconstruir la interfaz, iniciar / detener varios contenedores acoplables, implementar el entorno en una nueva computadora de desarrollo y similares.

Esto generalmente no es difícil, pero a menudo tales tareas surgen con mucha regularidad, requieren repetición y se convierten en una rutina.

Y ahora, de hecho, una vez que surgió la idea de cómo reducir el tiempo para esto, eso es todo, simplificando el proceso tanto como sea posible, implementando una pequeña utilidad que le permite ajustar conjuntos de acciones realizadas con frecuencia en elementos de un menú conveniente que se muestra en la consola.

Decidió implementar en Python desde Fuera de la caja, se instala en la mayoría de las distribuciones de Linux, y no necesitará instalar paquetes adicionales para usarlo.

Resultó algo muy conveniente disponible para clonar con github .

Todos los ajustes (es decir, qué elemento se debe realizar) se almacenan en el archivo menu.yml.
El archivo de configuración que se proporciona como ejemplo en el repositorio está equipado con todos los comentarios necesarios, pero para que todo sea aún más claro, hay un ejemplo de trabajo en el github ( https://github.com/hrustbb2/env-example ).

Un ejemplo es una aplicación que consta de tres contenedores docker (php, mysql, nginx) con configuraciones separadas para entornos de desarrollo y producción y dos scripts de implementación separados en estos entornos.

Entonces, clone, ejecute ./env y vea un menú de tres elementos:

0. Exit
1. Develop
2. Production
Chose action: _

Ampliaremos nuestra aplicación en modo de desarrollo, para esto seleccionamos el elemento 1, falla en el submenú:

0. Exit
1. Build
2. Deploy and Up
3. Up
4. Stop
5. Remove
Chose action: _

Aquí, primero creamos nuestros contenedores seleccionando 1, después de lo cual debe encontrar e ingresar el nombre de la aplicación. Aquí quiero llamar su atención sobre el hecho de que los parámetros necesarios para la ejecución de ciertos comandos deben ingresarse solo una vez, luego se guardan en el archivo env.ini y no es necesario ingresarlos cuando lo reinicia. Luego, después de esperar un tiempo hasta que se complete la creación de los contenedores, ejecutaremos el script para la implementación de la aplicación en sí, eligiendo 2.

En este ejemplo, el script clona la aplicación de inicio de Laravel en ./app, instala los paquetes de compositor necesarios, realiza migraciones y crea el archivo de configuración .env. Esto se hace solo una vez al principio, después de lo cual se inicia el entorno seleccionando el elemento 3. El elemento 5 sirve para eliminar los contenedores creados después de que ya no se necesitan, por ejemplo, cuando se completa el trabajo en el proyecto.

Eso es probablemente todo, ahora abra localhost en el navegador y continúe trabajando.

A veces, en producción, es necesario ejecutar algunos comandos automáticamente en la corona, por ejemplo, actualizar certificados SSL, copias de seguridad, etc. En este caso, ejecute, por ejemplo ./env -e 1-2-3, donde 1-2-3 es la ruta al comando deseado en el menú.

Mis colegas y yo aportamos muchos beneficios, haciendo su trabajo un poco más fácil, espero que la herramienta les sea útil.

Buena suerte a todos.

All Articles