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.
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!
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.
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
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.
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?
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.
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.
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.
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:
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!
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.
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.
Därefter måste du ange titel, beskrivning och nyckelord för tillägget.
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.
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.
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.
När du är klar med det här steget, tryck på Spara-knappen. Det är allt! Du är helt klar.
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.
Resultatet av förlängningen ska vara en mapp med namnet du valde fullt av de filer du skapade med Rör
kommando.
Om det fungerar är du klar. Nästa steg är helt frivilligt. Om du är ute efter en utmaning, fortsätt!
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.
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:
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.
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'
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
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.
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.