Menu do console Python

Saudações, colegas. Meu nome é Rustam, trabalho em uma pequena empresa que se dedica ao desenvolvimento web e promoção de sites.

Muitas vezes, ao trabalhar em um projeto, surgem tarefas que exigem a inserção de vários comandos no console, como, por exemplo, reconstruir o frontend, iniciar / parar vários contêineres de docker, implantar o ambiente em um novo computador de desenvolvimento e assim por diante.

Isso geralmente não é difícil, mas muitas vezes essas tarefas surgem com muita regularidade, exigem repetição, transformando-se em rotina.

E agora, de fato, uma vez que surgiu a idéia de como reduzir o tempo para isso, é isso, simplificando o processo o máximo possível, implementando um pequeno utilitário que permite agrupar conjuntos de ações executadas com frequência em itens de um menu conveniente exibido no console.

Decidiu implementar em Python desde Pronto, ele está instalado na maioria das distribuições Linux e você não precisa instalar pacotes adicionais para usá-lo.

Aconteceu algo muito conveniente disponível para clonagem com o github .

Todas as configurações (ou seja, qual item deve ser executado) são armazenadas no arquivo menu.yml.
O arquivo de configurações dado como exemplo no repositório está equipado com todos os comentários necessários, mas para tornar tudo ainda mais claro, há um exemplo de trabalho no github ( https://github.com/hrustbb2/env-example ).

Um exemplo é um aplicativo que consiste em três contêineres de encaixe (php, mysql, nginx) com configurações separadas para ambientes de desenvolvimento e produção e dois scripts de implantação separados nesses ambientes.

Então, clone, execute ./env e veja um menu de três itens:

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

Expandiremos nosso aplicativo no modo de desenvolvimento. Para isso, selecionamos o item 1, falha no submenu:

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

Aqui, primeiro criamos nossos contêineres selecionando 1, após o qual você precisa criar e inserir o nome do aplicativo. Aqui, quero chamar sua atenção para o fato de que os parâmetros necessários para a execução de determinados comandos precisam ser inseridos apenas uma vez, depois são salvos no arquivo env.ini e você não precisa inseri-los quando o reinicia. Depois de esperar um pouco até que a criação dos contêineres seja concluída, executaremos o script para a implantação do próprio aplicativo, escolhendo 2.

Neste exemplo, o script clona o aplicativo de inicialização do Laravel em ./app, instala os pacotes necessários do compositor, executa migrações e cria o arquivo de configuração .env. Isso é feito apenas uma vez no início, após o qual o ambiente é iniciado selecionando o item 3. O item 5 serve para excluir os contêineres criados depois que eles não são mais necessários, por exemplo, quando o trabalho no projeto é concluído.

Provavelmente é tudo, agora abra o host local no navegador e continue trabalhando.

Às vezes, na produção, é necessário executar alguns comandos automaticamente na coroa, por exemplo, atualizar certificados SSL, backup, etc. Nesse caso, execute, por exemplo ./env -e 1-2-3, onde 1-2-3 é o caminho para o comando desejado no menu.

Eu e meus colegas trouxemos muitos benefícios, facilitando um pouco o trabalho deles, espero que a ferramenta seja útil para você.

Boa sorte a todos.

All Articles