Skriv en Alfred Extension for å lage filer på fly

Nylig tok vi en titt på hvordan du bruker Terminal for å raskt lage filer. I dag skal vi gjennomgå og bruke denne kunnskapen til å lage vår egen Alfred-utvidelse som skaper en ny katalog med filer på et øyeblikk. Vi vil til og med slå på noen AppleScript underveis, slik at du virkelig kan få din dose av geeky godhet.


Hva vi bygger

Som utvikler, når jeg starter et nytt prosjekt, kjører jeg vanligvis gjennom samme prosess. Først må jeg lage en mappe og deretter nevne den. Da må jeg åpne en tekstredigerer og individuelt lage hver fil som jeg vil ha med (index.html, style.css, etc.).

Tydeligvis er dette en smerte, så jeg har prøvd en masse ting å komme seg rundt. Jeg prøvde å holde et tomt prosjekt på hånden som jeg bare kan dra og kopiere, ved hjelp av Terminal for å lage filene manuelt, verkene.

Min nåværende favorittmetode er å ringe opp Alfred, skriv inn navnet på mappen jeg vil lage og treffe Komme tilbake. Det er det! Hele resten av trinnene er fullstendig automatisert, og sparer meg mye tid i en gitt uke.

Tydeligvis kommer denne funksjonaliteten ikke med Alfred ut av esken, så vi må bygge den inn. Heldigvis er det ganske enkelt å gjøre det!

Tips: Denne opplæringen er ikke bare for utviklere. Følg med og tweak den for å lage filer av noe slag!


Terminal lekser

Som jeg nevnte i introduksjonen, har jeg dekket grunnleggende filopprettingsgrunnlag i en tidligere artikkel, men de er verdt å nevne igjen her, så vi er alle på samme side.

Det er tre grunnleggende shell script kommandoer som vi skal bruke i dag: cd, mkdir og touch. La oss se hvordan hver enkelt fungerer.

Endre katalogen din

Som standard, når du åpner Terminal, bør du begynne i Mac-maskinens hjemmemappe. Dette vil tjene som utgangspunkt for kommandoer som krever et sted. Hvis du vil endre den plasseringen, bruker du cd kommando.

CD Desktop /

Dette forteller Terminal at du vil endre gjeldende katalog til "Desktop". Senere når vi gjør dette fra Alfred, må vi være litt mer spesifikke:

/ Users / MacBookPrime / Desktop

Her har jeg tatt med hele banen til min skrivebordsmappe. Det er ekstremt viktig at du tilpasser denne spesifikke koden til din egen maskin. For å gjøre det, erstatt brukernavnet ditt med ditt eget. Sett inn brukernavnet ditt mellom "Brukere /" og "Skrivebord /" i koden nedenfor:

/ Users / YourUserNameGoesHere / Desktop

Lag en ny katalog

Når vi endrer kataloger, må vi opprette en ny katalog (mappe). For å gjøre dette bruker vi mkdir kommando.

mkdir mySite

Dette vil opprette en ny mappe kalt "mySite" i gjeldende katalog. I vårt tilfelle vil dette være skrivebordet.

Lag en ny fil

Nå kommer den beste delen: Hvordan lage en ny fil. Av hvilken som helst grunn virker det dumt for meg at jeg må åpne en app for å lage en fil. Jeg burde bare være i stand til å ødelegge tomme filer, med enhver utvidelse som jeg vil ha, helt til vilje. Med ta på kommando, vi kan gjøre akkurat det:

trykk på textfile.txt

Dette vil opprette en ny ren tekstfil i gjeldende katalog med navnet "textFile.txt." Lett riktig?

Sett alt sammen

Nå har vi all den kunnskapen vi trenger for å trekke av vårt skalskript. Slik ser det ut når vi kombinerer disse kommandoene (bla til høyre for å se hele brikken).

CD / Brukere / MacBookPrime / Desktop; mkdir mySite; cd mySite; trykk index.html style.css script.js

Legg merke til at forskjellige kommandoer er skilt av et semikolon, og også at berøringskommandoer kan kjedes sammen med bare et mellomrom mellom de forskjellige filnavnene.

Opprette en Alfred Extension

Nå som vi har vårt grunnleggende skalskript funnet ut, er det på tide å faktisk lage Alfred-utvidelsen. Heldigvis trenger vi ikke noen spesielle utviklingsverktøy for dette, bare Alfred! Du trenger Powerpack skjønt, som er premium-versjonen av Alfred.

Trinn 1. Opprett en ny utvidelse

For å begynne, brann opp Alfred og klikk på det lille utstyret øverst til høyre for å hente inn Preferansene. Herfra klikker du på "Utvidelser" -fanen. Du kan eller kanskje ikke ha noen tredjepartsutvidelser allerede her inne.


Klikk på Utvidelser-fanen

Fra fanen Utvidelser klikker du på den lille pluss-knappen nederst til venstre i vinduet. Det burde dukke opp en meny med de ulike typene utvidelser du kan opprette:


Velg "Shell Script"

Herfra velger du "Shell Script." Ikke bekymre deg hvis du ikke har noen ide om hvordan du skal skrive et skallskript, skrev vi allerede en over!

Steg 2. Navn og andre detaljer

Når du oppretter en ny utvidelse, kan du gi det et navn og sette inn informasjonen din hvis du skal distribuere den. På den måten kan folk se hvem den er fra.


Skriv inn kredittinformasjonen og trykk Lagre

I tillegg kan du tilpasse ikonet. Jeg tror Terminal-ikonet er bare fint for våre formål, men vær så snill å dra i ditt eget bilde.

Trinn 3. Skriv inn Alfred-detaljer

Deretter må du skrive inn tittelen, beskrivelsen og søkeordet for utvidelsen.


Skriv inn detaljene for Alfred her

Dette kan virke litt overflødig med det forrige vinduet, men det er det ikke. Skjermen før var bare for kredittformål, dette bestemmer hvilken informasjon Alfred faktisk viser når du får tilgang til utvidelsen.


Alfred viser detaljene du skrev inn når du ringte forlengelsen

Legg merke til at jeg angir "nw" som snarveien, så når jeg skriver dette inn i Alfred, vises det første alternativet som dukker opp, tittelen og beskrivelsen som jeg skrev inn.

Trinn 4. Skriv inn skriptet

Nå er det på tide å komme inn i skallkommandoene som vi skrev før, med litt tilpasning. Her er utklippet fra før:

CD / Brukere / MacBookPrime / Desktop; mkdir mySite; cd mySite; trykk index.html style.css script.js

Nå, i stedet for å lage en mappe som heter "mySite" hver gang, la oss bruke teksten som brukeren kommer inn i Alfred. Vi gjør dette ved å erstatte min side med spørsmål.

 CD / Brukere / MacBookPrime / Desktop; mkdir spørring; cd spørring; trykk index.html style.css script.js

Dette oppsettet krever oppføring fra brukeren, så vær sikker på å stille inn "Parameter" -innstillingen til "Påkrevd parameter". Ikke glem å tilpasse banen til skrivebordet ditt.


Skriv inn skriptet i kommandofeltet

Når du er ferdig med det trinnet, trykker du på Lagre-knappen. Det er det! Du er ferdig.

Test ut forlengelsen

For å sikre at alt fungerte riktig, gå ut av Innstillinger-vinduet og start Alfred igjen. Skriv "nw" for snarveien, etterfulgt av navnet på mappen du vil opprette.


Prøve ut den nye utvidelsen

Resultatet av utvidelsen skal være en mappe med navnet du valgte full av filene du opprettet med ta på kommando.


Resultatet av utvidelsen

Hvis det virker, så er du ferdig. De neste trinnene er helt valgfrie. Hvis du er ute etter en utfordring, fortsett!

Avansert: Gjør det til en hvilken som helst mappe

Metoden ovenfor lager alltid en ny mappe på skrivebordet. I sannhet er det slik mange jobber, men jeg anbefaler aldri slike rotete praksiser. Jeg er en stor forutsetning for å holde skrivebordet ditt rent, så jeg satte meg for å gjøre skriptet bedre.

Det vi ønsker å gjøre er å spørre Finder og ta tak i stien til det fremste vinduet. Hvis det ikke finnes noe vindu, bør vi standard til skrivebordet. Så senere når vi lager filene, bruker vi banen fra første trinn. I praksis kan du navigere til en mappe på stasjonen din, deretter kjøre Alfred-utvidelsen og raskt lage en ny katalog full av filer.

Trinn 1. AppleScript til redning

Det er åpenbart at den vanskelige delen her får et skallskript for automatisk å finne ut det fremste Finder-vinduet til enhver tid. Som det viser seg, er den enkleste måten jeg vet for å inspisere et Finder-vindu, AppleScript. For dobbeltnerdspunkter kan du faktisk pakke inn en AppleScript i et shell-skript, og omvendt.

Skriptet vi trenger vil ha noen grunnleggende trinn:

  1. Prøv å få banen til det fremste Finder-vinduet
  2. Hvis forsøket lykkes, må du returnere banen til vinduet
  3. Hvis forsøket mislykkes (ingen Finder-vindu finnes), returnerer banen til skrivebordet

En fartstopp som vi kjører inn på denne reisen er at AppleScript som standard bruker et annet format for filbaner enn shell-skript. I stedet for fremoverstreket som du sannsynligvis er vant til (Brukere / Brukernavn / Desktop), bruker AppleScript kolonner til å skille kataloger (Brukere: Brukernavn: Desktop).

Dette er lett nok til å håndtere skjønt. Vi må bare være sikker på å referere til POSIX-banen i vårt skript. Slik ser det ferdige produktet ut.

[Apple]
prøve
Fortell søknad "Finder"
sett denne_mappen til (målet for frontvinduet) som alias
sett denne_mappen til POSIX-banen til denne_mappen
returner denne mappen
slutt tell
sluttprøve

sett denne_mappen til POSIX-banen til (sti til skrivebordet)
returner denne mappen
[/ Apple]

Som du kan se, gikk vi rett og slett gjennom hvert av trinnene som vi skisserte over. Resultatet av dette skriptet vil alltid være en filsti. I de neste trinnene ser vi hvordan du bruker den banen i vårt skalskript.

Steg 2. Reformatering av skriptet

Vår neste oppgave er å legge inn AppleScript som vi nettopp skrev inn i vårt skalskript. For å gjøre dette bruker vi følgende syntaks:

 osascript -e 'AppleScript går her'

Som du kan se bruker vi "osascript" for å starte AppleScript-embed. Det neste stykket, "-e", brukes til å skille forskjellige linjer, som hver er innkapslet i enkelt anførselstegn. Så hvis vi ønsket å legge inn flere linjer med AppleScript, ville det se slik ut:

 osascript -e 'tell søknad' Finder '' -e 'aktiver''e 'end tell'

Dette er et veldig grunnleggende, tre linjeskript oppdelt av -e brytere. Med denne kunnskapen i tankene, må vi reformatere skriptet ovenfor. Å gjøre dette kan bli litt forvirrende, så jeg liker å følge et veldig spesifikt mønster. Først, ta ut innrykket og ekstra hvite plass.

 prøv å fortelle søknad "Finder" angi denne_folderen til (målet for frontvinduet) som alias angi denne_folderen til POSIX-banen til denne_folderen, returner denne_folder-slutt, fortell slutt, prøv sett denne_folderen til POSIX-banen til (vei til skrivebordet) returner denne_folderen

Deretter pakker du hver linje i et enkelt sitat og går foran det med -så skallskriptet kan analysere de forskjellige linjene.

 -e 'try' -en 'tell application' Finder '' -e 'sett denne_mappen til (målet for frontvinduet) som alias' -e 'sett denne_mappen til POSIX-banen til denne_mappen' -en 'returner denne_mappen' slutt tell '-e' end prøve '-e' sett denne_mappen til POSIX-banen til (bane til skrivebordet) '-e' returner denne_mappen '

Til slutt stripe ut alle linjeskiftene og plasser osascript kommando i begynnelsen.

 osascript -e 'try' -en 'tell application' Finder '' -e 'sett denne_mappen til (målet for frontvinduet) som alias' -e 'sett denne_mappen til POSIX-banen til denne_mappen' -en 'returner denne_mappen' e 'end tell' -e 'end prøve' -e 'sett denne_mappen til POSIX-banen for (bane til skrivebordet)' -e 'returner denne_mappen'

Trinn 3. Kast alt sammen

For vårt siste triks, skal vi bruke stien som returneres fra AppleScript som utgangspunkt for vårt skalskript som lager filene. For å gjøre dette, må vi kaste resultatet av skriptet i en variabel, og ring deretter den variabelen når vi trenger en startbane.

Før vi ser på det fullførte shell-skriptet, la oss se på syntaksen for å tildele variabelen:

 myPath = $ (osascript -e 'AppleScript går her')

Her opprettet vi en variabel som heter "myPath", og deretter settes den til en AppleScript. Siden dette vil returnere en bane, kan vi deretter bruke denne variabelen i stedet for en bane.

 cd $ myPath;

Det er alt der er til det. La oss nå kaste alle disse tingene sammen til en gigantisk kommando.

 myPath = $ (osascript -e 'try' -en 'tell application' Finder '' -e 'sett denne_mappen til (målet for frontvinduet) som alias' -e 'sett denne_mappen til POSIX-banen til denne_mappen' returnere denne_folder '-e' slutt tell '-e' ende prøve '-e' sett denne_mappen til POSIX-banen for (bane til skrivebordet) '-e' returner denne_mappen '); cd $ myPath; mkdir spørring; cd spørring; trykk index.html style.css script.js

Suksess!

Kommandoen skal nå være fullt funksjonell. Lim inn den i Alfred og gi den en prøvekjøring med samme "nw" prefiks som før. Resultatet skal være en ny mappe i ditt nåværende Finder-vindu med navnet du sendte inn som en parameter.


Lim inn det ferdige skriptet i kommandofeltet

Lag din egen

Hvis du gjorde det hele veien gjennom denne opplæringen, gratulerer, det var ganske utfordringen! Du har nå hånd kodet din første Alfred-utvidelse. Med nyoppdaget kunnskap om å kombinere shell-skript og AppleScripts, bør du kunne lage noen ganske fantastiske utvidelser alt på egen hånd.

Hvis du har noen ideer til nye utvidelser eller har opprettet noen på egen hånd, legg igjen en kommentar nedenfor og gi oss beskjed.