Kuidas Thoriga oma esimene CLI kirjutada

Magnetises liigutame oma pilveinfrastruktuuri Kubernetesesse. Selleks hakkasin meie rakenduses looma hunniku kesta skripte. Sellega pole probleemi, aga niipea, kui sain 5 erinevat kesta skriptifaili, hakkas see segaseks minema.

Ühel paarist programmeerimisseansil, mida me oma värbamisprotsessis teeme, valis kandidaat testprojekti kirjutamiseks Thori. See oli korraldatud ja tundus, et alustamiseks on lihtne. Nii et punktide ühendamisel arvasin, et meie skriptid on Thoriga ilmselt palju väljendusrikkamad.

Käsuliinid on juba osa meie igapäevasest elust: paar, paar ja rööpad, kui nimetada vaid mõnda. Selle loomine aitab teil igapäevaseks tööks vajalikke kommunaalkulusid korraldada ja paremini jagada.

Selles artiklis kirjutame lihtsa näite, mis on inspireeritud ühest parimast Breaking Bad stseenist. Kuid lisaks lihtsusele on see sama protsess CLI loomiseks kõigele, mida soovite.

Uue kalliskivi loomine

Alustame uue pärli loomisega, mis hõlbustab meie tarkvara, antud juhul täidetava faili, levitamist.

Uue kalliskivi loomiseks on punkeril käepärane käsk (kimbu ise on loodud Thoriga):

$ kimp pärl --exe walter

See loob skeleti järgmiselt:

 loo Walter / Gemfile
 loo walter / lib / walter.rb
 loo walter / lib / walter / version.rb
 loo walter / walter.gemspec
 loo walter / Rakefile
 loo walter / README.md
 loo Walter / prügikast / konsool
 loo Walter / prügikast / seadistus
 loo walter / .gitignore
 loo walter / .travis.yml
 loo walter / .rspec
 loo walter / spec / spec_helper.rb
 loo walter / spec / walter_spec.rb
 loo walter / LICENSE.txt
 loo walter / exe / walter

Nüüd peame lisama projekti projekti sõltuvusena Thori, avama walter.gemspec ja lisama:

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

Samuti peame eemaldama gemspec-failist TODO-üksused, nii et jätkake ja redigeerige kokkuvõtte, kirjelduse ja kodulehe väärtusi. Käivitage kimpide installimise käsk ja kõik Thori ridade kirjutamine on seadistatud.

Sisestage Thor

Avage lib / walter.rb ja lisage mõni kood, mida peate kõigepealt nõudma ja Thorilt pärima.

nõuda 'walter'
nõudma
moodul Walter
 klass CLI 

Lisagem nüüd lihtne teremaailm

klass CLI 

Tule, tere maailm aastal 2017? Tehkem sellest Tere Heisenberg!

klass CLI 

Oleme peaaegu kohal, viimane asi on oma libi binaarfailist välja kutsuda.

Binaarne

Exe direktiiv, mida kasutasime pärli loomisel, genereeris meie projekti jaoks Walteri binaari. Esimene asi, mida peate tegema, on lubade muutmine, et saaksime faili tegelikult käivitada:

chmod + x exe / walter

Nüüd saame seda nimetada:

$ kimp exe exe / walter

See ei anna väljundit, kuid ärge muretsege. Seda on oodata. Avage oma lemmiktoimetustes exe / walter ja lisage see järgmiselt:

Walter :: CLI.start (ARGV)

Me helistame äsja loodud CLI-le ja edastame saadud argumendid. Helistame siis uuesti:

$ kimp exe exe / walter
  walter tere [nimi] # ütle tere
  walter help [COMMAND] # Kirjeldage saadaolevaid käske või ühte konkreetset käsku

Thor loetleb kõik käsud, mis sellel CLI-l on saadaval, nii armsad.

Kui proovite nimeta meie hello käsku nimeta:

$ kimp exe exe / walter tere
VIGA: Walter tere kutsuti argumentideta
Kasutamine: “walter tere [nimi]”

Jah, see ütleb meile, kuidas seda kasutada. Selle koorega skripti tegemine eeldaks teatud tingimusi, kuid Thoril on see sisseehitatud.

$ kimp exe exe / walter tere Heisenberg
sul on jumalanna õige.

Installimine ja avaldamine

Ehte oma süsteemi installimiseks saate seda igal pool:

$ rake install

Kutsu seda:

$ walter tere Jesse
ütle mu nimi

Kui soovite selle rubügeemideks vabastada, lihtsalt jookse

$ reha vabastamine

Ruby ökosüsteem on ilus, kas pole?

Järeldus

Thor muudab igapäevased skriptid palju väljendusrikkamaks ja sisukamaks. See on kena lisand meeskonnale, mis juba kasutab ametlikku keelt Ruby, kuna kõik meeskonna liikmed saavad anda oma panuse teie käskude veelgi paremaks muutmiseks.

Meie puhul kasutati seda käskude loomiseks kubernete klastrite avamiseks ja meie rakenduse kasutuselevõtuks lavastuskeskkonna jaoks. Saate kasutada mõne teie ettevõttesisese sisemise protsessi või töövoo automatiseerimiseks!

Selle lõpetuseks mõned näpunäited:

  • kui vähegi võimalik, proovige kasutada käitusmeetodeid, mis on tavalised teistele CLI-dele: init, olek, uus, loomine, värskendamine.
  • proovige CLI-na paljastada võimalikult vähe meetodeid, nii et saate kapseldada asjad, mida vajatakse ainult koodi sees.
  • kui peate mõne konfiguratsioonifaili kirjutama, kasutage nuppu $ HOME /

Kui soovite selle teemaga põhjalikumalt tutvuda, siis siin on ametlikud dokumendid.

Õnne Thor!