Kuinka kirjoittaa ensimmäinen CLI Thorin kanssa

Magnetisissä siirrymme pilviinfrastruktuurimme Kubernetesiin. Aloin luoda joukko komentosarjoja sovelluksemme sisälle. Siinä ei ole mitään ongelmaa, mutta heti kun sain 5 erilaista komentotiedostoa, se alkoi tulla sotkuiseksi.

Yhdessä pariohjelmointiistunnossa, jota teemme vuokrausprosessissamme, ehdokas valitsi Thorin kirjoittamaan testiprojektin. Se oli järjestetty ja näytti helpoalta aloittaa. Joten pisteiden yhdistäminen ajattelin, että käsikirjoituksemme todennäköisesti olisivat paljon ilmellisempiä Thorin kanssa.

Komentorivit ovat jo osa jokapäiväistä elämäämme: git, niputus ja kiskot muutamia mainitakseni. Yhden luominen auttaa sinua järjestämään ja jakamaan apuohjelmat paremmin päivittäiseen työhön.

Tässä artikkelissa kirjoitamme yksinkertaisen esimerkin, joka on inspiroitu yhdestä parhaista Breaking Bad-kohtauksista. Mutta yksinkertaisuuden lisäksi se on sama prosessi luoda CLI kaikelle mitä haluat.

Uuden helmen luominen

Aloitetaan luomalla uusi helmi, joka helpottaa ohjelmistomme, tässä tapauksessa suoritetun tiedoston, levittämistä.

Uuden jalokivin luomiseksi niputtajalla on kätevä komento (itse niputin on muotoiltu Thorin kanssa):

$ kimppu helmi --exe walter

Tämä luo seuraavan luuranko:

 luo Walter / Gemfile
 luo walter / lib / walter.rb
 luo walter / lib / walter / version.rb
 luo walter / walter.gemspec
 luo Walter / Rakefile
 luo walter / README.md
 luoda Walter / roskakori / konsoli
 luo walter / bin / setup
 luo walter / .gitignore
 luo walter / .travis.yml
 luo walter / .rspec
 luo walter / spec / spec_helper.rb
 luo walter / spec / walter_spec.rb
 luo walter / LICENSE.txt
 luoda walter / exe / walter

Nyt meidän on lisättävä Thor riippuvuusprojektiimme, avattava walter.gemspec ja lisättävä:

spec.add_dependency "Thor", "~> 0,20"

Meidän on myös poistettava TODO-kohteet gemspec-tiedostosta, joten siirry eteenpäin ja muokkaa yhteenvedon, kuvauksen ja kotisivun arvoja. Suorita paketin asennuskomento, ja kaikki on asennus kirjoittaa joitain Thor-rivejä.

Kirjoita Thor

Avaa lib / walter.rb ja lisäämme koodia, joka sinun on ensin vaadittava ja perittävä Thorilta.

vaatia 'Walter'
vaatia ”toria”
moduuli Walter
 luokan CLI 

Nyt lisätään yksinkertainen tervemaailma

luokan CLI 

Tule, hei maailma vuonna 2017? Tehdään siitä hei Heisenberg!

luokan CLI 

Olemme melkein siellä, viimeinen asia on soittaa lib binaaritiedostosta.

Binaarinen

Exe-direktiivi, jota käytimme helmen luomiseen, tuotti Walter-binaarin projektissamme. Ensimmäinen asia, joka sinun on tehtävä, on muuttaa käyttöoikeuksia, jotta voimme tosiasiallisesti suorittaa tiedoston:

chmod + x exe / walter

Nyt voimme kutsua sitä:

$ kimppu exe exe / walter

Tämä ei tuota tulosta, mutta älä huoli. Tämän odotetaan. Avaa exe / walter suosikkieditorissasi ja lisäämme tämän:

Walter :: CLI.start (argv)

Soitamme juuri luomallesi CLI: lle ja välitämme vastaanotetut argumentit. Soitetaan nyt uudelleen:

$ kimppu exe exe / walter
  Walter hei [nimi] # tervehdy
  walter help [COMMAND] # Kuvaile käytettävissä olevia komentoja tai yhtä erityistä komentoa

Thor luettele kaikki tämän CLI: n käytettävissä olevat komennot, niin suloiset.

Jos yrität soittaa hello -komennollemme ilman nimeä:

$ kimppu exe exe / walter hei
VIRHE: ”Walter hello” kutsuttiin ilman argumentteja
Käyttö: “Walter hello [nimi]”

Kyllä, se kertoo meille kuinka sitä käytetään. Tämän tekeminen komentosarjoina vaatisi joitain ehdollisia ehtoja, mutta Thorilla on tämä sisäänrakennettu.

$ kimppu exe exe / walter hello Heisenberg
olet jumalallinen oikeassa.

Asennus ja julkaiseminen

Voit asentaa jalokivin järjestelmääsi tällä tavoin sillä milloin tahansa:

$ rake install

Kutsu sitä:

$ Walter hei Jesse
sano nimeni

Jos haluat vapauttaa sen rubygemeihin, suorita vain

$ rake release

Rubyn ekosysteemi on kaunis, eikö niin?

johtopäätös

Thor tekee päivittäisistä käsikirjoituksista paljon ilmaisullisempia ja merkityksellisempiä. Se on hieno lisä joukkueelle, joka käyttää jo Rubyn virallisena kielenä, koska kaikki ryhmän jäsenet voivat auttaa parantamaan komentojasi.

Meidän tapauksessamme sitä käytettiin luomaan komentoja kubernetes-klusterien tuomiseksi esiin ja asentamaan sovelluksemme latausympäristöön. Voit automatisoida jonkin yrityksen sisäisen prosessin tai työnkulun!

Tämän loppuun saattamiseksi joitain viimeisiä vinkkejä:

  • yritä aina kun mahdollista käyttää komentomenetelmiä, jotka ovat yhteisiä muille CLI: ille: init, tila, uusi, luo, päivitä.
  • Yritä paljastaa CLI: nä mahdollisimman vähän menetelmiä, jotta voit kapseloida asiat, joita tarvitaan vain koodiin.
  • Jos sinun on kirjoitettava jokin konfiguraatiotiedosto, käytä $ HOME /

Jos haluat syventää aihetta, tässä ovat viralliset asiakirjat.

Hyvää Thor!