Skriv en Alfred Extension för att skapa filer på flugan

Nyligen tog vi en titt på hur man använder Terminal för att snabbt skapa filer. Idag ska vi granska och tillämpa denna kunskap för att skapa vår egen Alfred-förlängning som skapar en ny katalog med filer på ett ögonblick. Vi kommer till och med att slå på några AppleScript under vägen så att du verkligen kan få din dos av geeky godhet.


Vad vi bygger

Som utvecklare, när jag börjar ett nytt projekt, kör jag vanligtvis genom samma process. Först måste jag skapa en mapp och namnge den. Då måste jag öppna en textredigerare och skapa individuellt varje fil som jag vill inkludera (index.html, style.css, etc.).

Självklart är det här en smärta, så jag har provat en massa saker att ta sig runt. Jag försökte hålla ett tomt projekt till hands som jag bara kan dra och kopiera, med Terminal för att skapa filerna manuellt, verken.

Min nuvarande favoritmetod är att ringa upp Alfred, skriv in namnet på den mapp jag vill skapa och träffa Lämna tillbaka. Det är allt! Hela resten av stegen är helt automatiserad, vilket sparar mig mycket tid i en viss vecka.

Självklart kommer denna funktionalitet inte med Alfred ut ur lådan, så vi måste bygga den in. Lyckligtvis är det ganska enkelt!

Tips: Denna handledning är inte bara för utvecklare. Följ med och tweak det för att skapa filer av vilken typ som helst!


Terminal hemläxa

Som jag nämnde i introduktionen har jag tagit upp grundläggande basfiler för skapande av filer i en tidigare artikel, men de är värda att nämna igen här, så vi är alla på samma sida.

Det finns tre grundläggande skalskriptkommandon som vi ska använda idag: cd, mkdir och touch. Låt oss se hur alla fungerar.

Ändra din katalog

Som standard, när du öppnar Terminal, bör du börja i din Macs hemmapp. Detta kommer att fungera som utgångspunkt för kommandon som kräver en plats. Om du vill ändra den platsen använder du CD kommando.

cd skrivbord /

Detta berättar terminalen om att du vill ändra den aktuella katalogen till "Skrivbord". Senare när vi gör det från Alfred måste vi vara lite mer specifika:

/ Användare / MacBookPrime / Desktop

Här har jag inkluderat hela sökvägen till min skrivbordsmapp. Det är oerhört viktigt att du anpassar det här snippet för din egen maskin. För att göra det, ersätt mitt användarnamn med ditt eget. Ange ditt användarnamn mellan "Användare /" och "Skrivbord /" i nedanstående kod:

/ Användare / YourUserNameGoesHere / Desktop

Skapa ett nytt katalog

När vi ändrar kataloger måste vi skapa en ny katalog (mapp). För att göra detta använder vi mkdir kommando.

mkdir mySite

Detta skapar en ny mapp med namnet "mySite" i den aktuella katalogen. I vårt fall blir det skrivbordet.

Skapa en ny fil

Nu kommer den bästa delen: hur man skapar en ny fil. Av vilken anledning som helst, det verkar dumt för mig att jag måste öppna en app för att skapa en fil. Jag borde bara kunna bryta ut tomma filer, med eventuella förlängningar som jag vill ha, rent i vilo. Med Rör kommando, vi kan göra exakt det:

tryck på textFile.txt

Detta skapar en ny vanlig textfil i den aktuella katalogen med namnet "textFile.txt." Lätt rätt?

Lägg samman allt

Nu har vi all den kunskap som vi behöver dra av vårt skalskript. Så här ser det ut när vi kombinerar dessa kommandon (bläddra till höger om du vill se hela utdraget).

cd / användare / MacBookPrime / Desktop; mkdir mySite; cd mySite; tryck på index.html style.css script.js

Observera att olika kommandon är åtskilda av en semikolon och också att de kommandon som berörs kan kopplas samman med endast ett mellanslag mellan de olika filnamnen.

Skapa en Alfred Extension

Nu när vi har vårt grundläggande skalskript utestängt, är det dags att faktiskt skapa Alfred-förlängningen. Lyckligtvis behöver vi inte några speciella utvecklingsverktyg för detta, bara Alfred! Du behöver Powerpack, men det är premium-versionen av Alfred.

Steg 1. Skapa en ny förlängning

För att börja, skjut upp Alfred och klicka på den lilla växeln högst upp till höger för att få fram inställningarna. Härifrån klickar du på fliken "Extensions". Du kanske eller kanske inte har några tredje partstillägg redan här.


Klicka på fliken Extensions

På fliken Utvidgningar klickar du på den lilla plusknappen längst ner till vänster i fönstret. Det ska dyka upp en meny med de olika typerna av tillägg som du kan skapa:


Välj "Shell Script"

Härifrån, välj "Shell Script." Oroa dig inte om du inte har någon aning om hur man skriver ett skalskript, skrev vi redan en ovan!

Steg 2. Namn och övriga detaljer

När du skapar en ny förlängning kan du ge det ett namn och infoga din information om du ska distribuera den. På så sätt kan människor se vem det är från.


Ange kreditinformationen och klicka på Spara

Dessutom kan du anpassa ikonen. Jag tror att ikonet Terminal bara är bra för våra ändamål, men gärna dra i din egen bild.

Steg 3. Ange Alfred Detaljer

Därefter måste du ange titel, beskrivning och nyckelord för tillägget.


Ange detaljerna för Alfred här

Det kan tyckas lite överflödigt med föregående fönster men det är det inte. Skärmen innan var bara för kreditändamål, detta avgör vilken information Alfred faktiskt visar när du kommer åt tillägget.


Alfred visar de uppgifter du angav när du ringde tillägget

Lägg märke till att jag anger "nw" som genväg, så när jag skriver in det i Alfred, visas det första alternativet som dyker upp med titeln och beskrivningen som jag angav.

Steg 4. Skriv in skriptet

Nu är det dags att komma in i skalkommandon som vi skrev tidigare, med lite anpassning. Här är snippet från tidigare:

cd / användare / MacBookPrime / Desktop; mkdir mySite; cd mySite; tryck på index.html style.css script.js

Nu, istället för att göra en mapp som heter "mySite" varje gång, låt oss använda texten som användaren går in i Alfred. Vi gör detta genom att ersätta min sida med fråga.

 cd / användare / MacBookPrime / Desktop; mkdir query; cd fråga; tryck på index.html style.css script.js

Denna inställning kräver inmatning från användaren så var noga med att ställa in parametern "Parameter" till "Obligatorisk parameter". Glöm inte att anpassa vägen till skrivbordet.


Skriv in skriptet i kommandofältet

När du är klar med det här steget, tryck på Spara-knappen. Det är allt! Du är helt klar.

Testa förlängningen

För att säkerställa att allt fungerade ordentligt, avsluta fönstret Inställningar och starta Alfred igen. Skriv "nw" för genvägen, följt av namnet på den mapp du vill skapa.


Prova den nya förlängningen

Resultatet av förlängningen ska vara en mapp med namnet du valde fullt av de filer du skapade med Rör kommando.


Resultatet av förlängningen

Om det fungerar är du klar. Nästa steg är helt frivilligt. Om du är ute efter en utmaning, fortsätt!

Avancerat: Gör det jobbigt i vilken mapp som helst

Metoden ovan skapar alltid en ny mapp på skrivbordet. I själva verket är det här hur många människor arbetar, men jag rekommenderar aldrig sådana röriga rutiner. Jag är en stor förespråkare för att hålla skrivbordet rent, så jag bestämde mig för att göra manuset bättre.

Vad vi vill göra är att fråga Finder och ta tag i vägen till det främsta fönstret. Om det inte finns något fönster, borde vi som standard skrivbordet. Senare när vi skapar filerna använder vi banan från det första steget. I praktiken kan du navigera till en mapp på din enhet, sedan köra Alfred-förlängningen och snabbt skapa en ny katalog full av filer.

Steg 1. AppleScript till räddningen

Självklart kommer den knepiga delen här att få ett skalskript för att automatiskt räkna ut det främsta Finder-fönstret vid varje given tillfälle. Som det visar sig är det enklaste sättet jag vet att inspektera ett Finder-fönster AppleScript. För dubbla nerdpunkter kan du faktiskt lägga en AppleScript i ett skalskript och vice versa.

Skriptet som vi behöver kommer att ha några grundläggande steg:

  1. Försök att hitta vägen till det främsta Finder-fönstret
  2. Om försöket är framgångsrikt, returnera sökvägen till det här fönstret
  3. Om försöket misslyckas (inget Finder-fönster finns), returnera sökvägen till skrivbordet

En hastighetsstöt som vi stöter på på denna resa är att AppleScript som standard använder ett annat format för filvägar än skalskript. I stället för det snedstreck som du brukar använda (Användare / Användarnamn / Skrivbord) använder AppleScript kolonner för att separera kataloger (Användare: Användarnamn: Skrivbord).

Det här är lätt att hantera men. Vi måste bara vara säkra på att hänvisa till POSIX-sökvägen i vårt manus. Så här ser den färdiga produkten ut.

[Apple]
Prova
berätta ansökan "Finder"
sätt denna_folder till (målet för frontfönstret) som alias
sätt denna_folder till POSIX-sökvägen till den här mappen
returnera den här mappen
slutet berätta
slutet försök

sätt denna_folder till POSIX-sökvägen för (sökväg till skrivbordet)
returnera den här mappen
[/ Apple]

Som du kan se gick vi helt enkelt igenom varje steg som vi skisserade ovan. Resultatet av detta skript kommer alltid att vara en filväg. I nästa steg ser vi hur du använder den sökvägen i vårt skalskript.

Steg 2. Reformatering av scriptet

Vår nästa uppgift är att bädda in AppleScript som vi just skrev in i vårt skalskript. För att göra detta använder vi följande syntax:

 osascript -e 'AppleScript går här'

Som du kan se använder vi "osascript" för att börja AppleScript-inbäddningen. Nästa stycke, "-e" används för att skilja olika linjer, vilka är inkapslade i enkla citat. Så om vi ville bädda in flera rader av AppleScript så skulle det se ut så här:

 osascript -e 'berätta ansökan "Finder"' -e 'aktivera' -e 'end tell'

Detta är en mycket grundläggande, tre linjeskript delas upp av -e-omkopplare. Med den här kunskapen i åtanke behöver vi reformat vårt manus ovan. Att göra detta kan bli lite förvirrande, så jag gillar att följa ett mycket specifikt mönster. Först, ta bort inrymmet och extra blankutrymme.

 försök berätta ansökan "Finder" ställa in denna_folder till (målet för frontfönstret) som alias ställa in denna_folder till POSIX-sökvägen till den här mappen returnera det här_följa slutet berätta slutet försök ställa in denna_folder till POSIX-sökvägen för (sökvägen till skrivbordet) returnera den här mappen

Därefter, linda varje rad i ett enda citat och föregripa det med -så så kan skalskriptet tolka de olika raderna.

 -e 'try' -e 'tell application' Finder '' -e 'ställa in denna_folder till (målet för frontfönstret) som alias' -e 'ställa in denna_folder till POSIX-sökvägen till denna_mapp' -e 'returnera denna_mapp' end tell '-e' end försök '-e' sätt denna_folder till POSIX-sökvägen för (sökväg till skrivbord) '-e' returnera denna_mapp '

Slutligen ta bort alla rasterna och placera osascript kommandot i början.

 osascript -e 'try' -a 'berätta ansökan' Finder '' -e 'ställa in denna_folder till (målet för frontfönstret) som alias' -e 'sätt denna_folder till POSIX-sökvägen till den här mappen' -e 'returnera den här mappen' e 'end tell' -e 'end försök' -e 'sätt denna_folder till POSIX-sökvägen för (sökväg till skrivbord)' -e 'returnera denna_folder'

Steg 3. Kasta allt tillsammans

För vårt sista trick kommer vi att använda sökvägen som returneras från AppleScript som utgångspunkt för vårt skalskript som skapar filerna. För att göra detta måste vi kasta resultatet av manuset i en variabel och ringa den variabeln när vi behöver en startväg.

Innan vi tittar på det färdiga skalskriptet, låt oss titta på syntaxen för att tilldela variabeln:

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

Här skapade vi en variabel som heter "myPath" och sedan ställer den till en AppleScript. Eftersom detta kommer att returnera en sökväg kan vi sedan använda denna variabel i stället för en sökväg.

 cd $ myPath;

Det är allt som finns där. Låt oss nu kasta alla dessa saker tillsammans till ett jätte kommando.

 myPath = $ (osascript -e 'försök' -e 'tell application' Finder '' -e 'ställa in denna_folder till (målet för frontfönstret) som alias' -e 'sätt denna_folder till POSIX-sökvägen till denna_folder' -e ' returnera this_folder '-e' end tell '-e' slut försök '-e' sätt denna_folder till POSIX-sökvägen för (sökvägen till skrivbordet) '-e' returnera den här mappen '); cd $ myPath; mkdir query; cd fråga; tryck på index.html style.css script.js

Framgång!

Kommandot ska nu vara fullt fungerande. Klistra in det i Alfred och ge det en provkörning med samma "nw" prefix som tidigare. Resultatet ska vara en ny mapp i ditt nuvarande Finder-fönster med namnet som du skickade in som en parameter.


Klistra in det färdiga skriptet i kommandofältet

Gör din egen

Om du gjorde det hela vägen genom denna handledning, grattis, det var ganska utmaningen! Du har nu kodat din första Alfred-förlängning. Med din nyfunna kunskap om att kombinera skalskript och AppleScripts borde du kunna skapa några ganska fantastiska tillägg alla på egen hand.

Om du har några idéer för nya tillägg eller har skapat några på egen hand, lämna en kommentar nedan och meddela oss.