Menu konsol Python

Salam, kolega. Nama saya Rustam, saya bekerja di sebuah perusahaan kecil yang bergerak dalam pengembangan web dan promosi situs web.

Sangat sering, ketika mengerjakan suatu proyek, tugas muncul yang memerlukan memasukkan beberapa perintah ke konsol, seperti, misalnya, membangun kembali frontend, memulai / menghentikan beberapa kontainer buruh pelabuhan, menyebarkan lingkungan pada komputer pengembangan baru, dan sejenisnya.

Ini umumnya tidak sulit, tetapi seringkali tugas-tugas seperti itu muncul dengan sangat teratur, membutuhkan pengulangan, berubah menjadi rutinitas.

Dan sekarang, pada kenyataannya, begitu ide muncul bagaimana mengurangi waktu untuk ini, itu saja, menyederhanakan proses sebanyak mungkin, menerapkan utilitas kecil yang memungkinkan Anda untuk membungkus set tindakan yang sering dilakukan dalam item menu nyaman yang ditampilkan di konsol.

Memutuskan untuk mengimplementasikan Python sejak itu Out of the box, diinstal di sebagian besar distribusi Linux, dan Anda tidak perlu menginstal paket tambahan untuk menggunakannya.

Ternyata ada sesuatu yang sangat nyaman tersedia untuk kloning dengan github .

Semua pengaturan (yaitu, item apa yang harus dilakukan) disimpan dalam file menu.yml.
File pengaturan yang diberikan sebagai contoh dalam repositori dilengkapi dengan semua komentar yang diperlukan, tetapi untuk membuat semuanya menjadi lebih jelas ada contoh kerja pada github ( https://github.com/hrustbb2/env-example ).

Contohnya adalah aplikasi yang terdiri dari tiga kontainer buruh pelabuhan (php, mysql, nginx) dengan konfigurasi terpisah untuk lingkungan pengembangan dan produksi dan dua skrip penempatan terpisah di lingkungan ini.

Jadi, clone, jalankan ./env dan lihat menu tiga item:

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

Kami akan memperluas aplikasi kami dalam mode pengembangan, untuk ini kami memilih item 1, gagal di submenu:

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

Di sini, pertama-tama kita membuat wadah kami dengan memilih 1, setelah itu Anda harus membuat dan memasukkan nama aplikasi. Di sini saya ingin menarik perhatian Anda pada fakta bahwa parameter yang diperlukan untuk pelaksanaan perintah tertentu harus dimasukkan hanya sekali, maka mereka disimpan dalam file env.ini dan Anda tidak perlu memasukkannya ketika Anda me-restart itu. Kemudian, setelah menunggu beberapa saat sampai pembuatan kontainer selesai, kami akan menjalankan skrip untuk penyebaran aplikasi itu sendiri, memilih 2.

Dalam contoh ini, skrip mengkloning aplikasi startup Laravel ke ./app, menginstal paket komposer yang diperlukan, menggulir migrasi, dan membuat file konfigurasi .env. Ini dilakukan hanya sekali di awal, setelah itu lingkungan dimulai dengan memilih item 3. Item 5 berfungsi untuk menghapus wadah yang dibuat setelah mereka menjadi tidak lagi diperlukan, misalnya, ketika pekerjaan pada proyek selesai.

Itu mungkin saja, sekarang buka localhost di browser dan lanjutkan bekerja.

Terkadang pada produksi ada kebutuhan untuk menjalankan beberapa perintah secara otomatis pada mahkota, misalnya, memperbarui sertifikat SSL, cadangan, dll. Dalam kasus ini, jalankan, misalnya ./env -e 1-2-3, di mana 1-2-3 adalah path ke perintah yang diinginkan dalam menu.

Saya dan kolega saya membawa banyak manfaat, membuat pekerjaan mereka sedikit lebih mudah, saya harap alat ini akan bermanfaat bagi Anda.

Semoga beruntung untuk semua.

All Articles