Scrieți o extensie Alfred pentru a crea fișiere pe zbor

Recent, am aruncat o privire asupra modului de utilizare a terminalului pentru a crea rapid fișiere. Astăzi, vom examina și vom aplica aceste cunoștințe pentru a face propria extindere Alfred care creează într-o clipă un nou director de fișiere. Vom lovi chiar și pe unele AppleScript de-a lungul drumului, astfel încât să puteți obține într-adevăr doza de bunătate geeky.


Ce construim

În calitate de dezvoltator, ori de câte ori încep un nou proiect, eu de obicei trec prin același proces. În primul rând, trebuie să creez un dosar și să îl denumesc. Apoi trebuie să deschid un editor de text și să creez individual fiecare fișier pe care vreau să îl includ (index.html, style.css, etc.).

Evident, aceasta este o durere, așa că am încercat o mulțime de lucruri pentru a obține în jurul valorii de ea. Am încercat să păstrez un proiect gol pe care să-l pot glisa și copia, folosind Terminal pentru a crea fișierele manual, lucrările.

Metoda curentă preferată este de a apela Alfred, tastați numele dosarului pe care vreau să îl creez și să-l lovesc Întoarcere. Asta e! Toți ceilalți pași sunt complet automatizați, economisind mult timp într-o anumită săptămână.

Evident, această funcționalitate nu vine în afara lui Alfred din cutie, așa că va trebui să o construim. Din fericire, acest lucru este destul de simplu!

Bacsis: Acest tutorial nu este doar pentru dezvoltatori. Urmați de-a lungul și tweak pentru a crea fișiere de orice tip!


Terminarea temelor

Așa cum am menționat în introducere, am făcut referire la elementele de bază ale creării fișierelor Terminal într-un articol anterior, dar merită menționat încă o dată aici, așa că suntem toți pe aceeași pagină.

Există trei comenzi de bază pentru shell shell pe care le vom folosi astăzi: cd, mkdir și touch. Să vedem cum funcționează fiecare.

Schimbarea directorului

În mod implicit, când deschideți Terminal, ar trebui să începeți în dosarul de acasă al Mac. Aceasta va servi ca punct de plecare pentru orice comenzi care necesită o locație. Dacă doriți să modificați locația respectivă, utilizați CD comanda.

cd Desktop /

Acest lucru spune terminalului că doriți să schimbați directorul curent în "Desktop". Mai târziu, când facem asta de la Alfred, va trebui să fim puțin mai specifici:

/ Users / MacBookPrime / Desktop

Aici am inclus calea completă la dosarul Desktop. Este extrem de important să personalizați acest fragment special pentru propria mașină. Pentru a face acest lucru, înlocuiți numele meu de utilizator cu al tău. Inserați numele dvs. de utilizator între "Utilizatori /" și "Desktop /" în fragmentul de mai jos:

/ Users / YourUserNameGoesHere / Desktop

Efectuarea unui nou director

Odată ce schimbăm directoarele, va trebui să creăm un director nou (dosar). Pentru a face acest lucru, folosim mkdir comanda.

mkdir mySite

Acest lucru va crea un nou folder numit "mySite" în directorul curent. În cazul nostru, acesta va fi Desktop.

Realizarea unui fișier nou

Acum vine cea mai bună parte: cum să creați un fișier nou. Din orice motiv, mi se pare groaznic că trebuie să deschid o aplicație pentru a crea un fișier. Ar trebui doar să pot scoate fișierele goale, cu orice extensie pe care o doresc, pur și simplu la alegere. Cu atingere comanda, putem face exact asta:

atinge textFile.txt

Acest lucru va crea un nou fișier text simplu în directorul curent cu numele "textFile.txt". Ușurel drept?

Pune-le pe toți împreună

Acum avem toate cunoștințele de care avem nevoie pentru a scoate scriptul nostru shell. Iată cum arată când combinăm aceste comenzi (derulați spre dreapta pentru a vedea un fragment întreg).

cd / Utilizatori / MacBookPrime / Desktop; mkdir mySite; cd mySite; atingeți index.html style.css script.js

Observați că diferite comenzi sunt separate printr-un punct și virgulă și, de asemenea, comenzile atingeți pot fi înlănțuite împreună folosind doar un spațiu între diferitele nume de fișiere.

Crearea unei extensii Alfred

Acum, când ne-am dat seama de scriptul nostru de bază, este timpul să creăm extensia Alfred. Din fericire, nu avem nevoie de instrumente speciale pentru dezvoltatori, doar Alfred! Totuși, veți avea nevoie de Powerpack, care este versiunea premium a lui Alfred.

Pasul 1. Creați o extensie nouă

Pentru a începe, aprindeți-l pe Alfred și faceți clic pe uneltele minuscule din dreapta sus pentru a aduce preferințele. De aici, faceți clic pe fila "Extensii". Ați putea sau nu să aveți deja câteva extensii de terțe părți aici.


Faceți clic pe fila Extensii

Din fila Extensii, faceți clic pe butonul mic plus în partea din stânga jos a ferestrei. Aceasta ar trebui să afișeze un meniu din diferitele tipuri de extensii pe care le puteți crea:


Alegeți "Shell Script"

De aici, alegeți "Shell Script". Nu vă faceți griji dacă nu aveți nicio idee cum să scrieți un script de shell, am scris deja unul de mai sus!

Pasul 2. Nume și alte detalii

Când creați o extensie nouă, puteți să-i dați un nume și să introduceți informațiile în cazul în care o veți distribui. Astfel oamenii pot vedea de la cine provin.


Introduceți informațiile de credit și apăsați Salvare

În plus, puteți particulariza pictograma. Cred că pictograma terminalului este foarte bine pentru scopurile noastre, dar simțiți-vă liber să trageți în propria imagine.

Pasul 3. Introduceți detalii Alfred

Apoi, va trebui să introduceți titlul, descrierea și cuvântul cheie al extensiei.


Introduceți aici detaliile pentru Alfred

Acest lucru poate părea puțin redundant cu fereastra anterioară, dar nu este. Ecranul anterior era doar pentru scopuri de credit, aceasta determină ce informații afișează Alfred atunci când accesați extensia.


Alfred arată detaliile pe care le-ați introdus când apelați extensia

Observați că am setat "nw" ca scurtătură, așa că atunci când scriu asta în Alfred, prima opțiune care apare afișează titlul și descrierea pe care am introdus-o.

Pasul 4. Introduceți scriptul

Acum este momentul să intrați în comenzile shell pe care le-am scris mai devreme, cu o mică particularizare. Iată fragmentul anterior:

cd / Utilizatori / MacBookPrime / Desktop; mkdir mySite; cd mySite; atingeți index.html style.css script.js

Acum, mai degrabă decât să facem un dosar numit "mySite" de fiecare dată, să folosim textul pe care îl introduce utilizatorul în Alfred. Facem asta prin înlocuire site-ul meu cu Interogare.

 cd / Utilizatori / MacBookPrime / Desktop; mkdir interogare; cd interogare; atingeți index.html style.css script.js

Această setare necesită introducerea de la utilizator, astfel că asigurați-vă că setați parametrul "Parametru" la "Parametru necesar". De asemenea, nu uitați să personalizați calea către desktop.


Introduceți scriptul în câmpul Comandă

După ce ați terminat cu acel pas, apăsați butonul Salvare. Asta e! Ești terminat.

Examinați extensia

Pentru a vă asigura că totul funcționează corect, ieșiți din fereastra Preferințe și lansați-l din nou pe Alfred. Tastați "nw" pentru comanda rapidă, urmată de numele directorului pe care doriți să-l creați.


Încercați noua extensie

Rezultatul extensiei ar trebui să fie un dosar cu numele ales pe deplin de fișierele pe care le-ați creat cu atingere comanda.


Rezultatul extinderii

Dacă funcționează, atunci ați terminat. Următorii pași sunt complet opționali. Dacă sunteți pregătit pentru o provocare, continuați!

Avansat: Faceți-o să funcționeze în orice folder

Metoda de mai sus creează întotdeauna un nou dosar pe desktop. De fapt, așa lucrează mulți oameni, dar nu recomand niciodată astfel de practici dezordonate. Sunt un mare promotor al păstrării Desktop-ului dvs. curat, așa că am pornit pentru a face scenariul mai bun.

Ceea ce vrem să facem este să interogăm Finder-ul și să apucăm calea ferestrei din față. Dacă nu există nicio fereastră, ar trebui să fim implicit la Desktop. Apoi, mai târziu când creăm fișierele, vom folosi calea din primul pas. În practică, veți putea să navigați la un folder de pe unitatea dvs., apoi să rulați extensia Alfred și să creați rapid un nou director plin de fișiere.

Pasul 1. AppleScript pentru salvare

Evident, partea dificilă aici este obținerea unui script de shell pentru a descoperi automat fereastra Finder din față în orice moment. După cum se dovedește, cel mai simplu mod pe care îl știu să inspectez o fereastră Finder este AppleScript. În cazul punctelor duble de nerd, puteți înfășura un AppleScript într-un script shell și invers.

Scriptul de care avem nevoie va avea câțiva pași de bază:

  1. Încercați să obțineți calea celei mai de sus ferestre Finder
  2. Dacă încercarea are succes, întoarceți calea acelei ferestre
  3. Dacă încercarea eșuează (nu există nicio fereastră Finder), returnați calea Desktop

O lovitură de viteză pe care o întâlnim în această călătorie este că, implicit, AppleScript folosește un format diferit pentru căile de fișiere decât scripturile shell. În locul slash-ului cu care ați fost probabil folosit (Utilizatori / Nume de utilizator / Desktop), AppleScript utilizează colonii pentru a separa directoarele (Utilizatori: Nume de utilizator: Desktop).

Acest lucru este destul de ușor să se ocupe, totuși. Trebuie doar să ne referim la calea POSIX în scriptul nostru. Iată cum arată produsul finit.

[AppleScript]
încerca
spuneți aplicației "Finder"
setați acest_folder la (ținta ferestrei din față) ca alias
setați acest_folder pe calea POSIX a acestui folder
returnați acest_folder
sfarsitul spune
încercați sfârșitul

setați acest_folder pe calea POSIX (cale către desktop)
returnați acest_folder
[/ AppleScript]

După cum puteți vedea, pur și simplu am trecut prin fiecare dintre pașii pe care i-am prezentat mai sus. Rezultatul acestui script va fi întotdeauna o cale de fișier. În următorii pași, vom vedea cum să folosim această cale în scriptul nostru shell.

Pasul 2. Reformarea scriptului

Următoarea noastră sarcină este să încorporăm AppleScript pe care tocmai l-am scris în scriptul nostru shell. Pentru aceasta, folosim următoarea sintaxă:

 osascript -e 'AppleScript merge aici'

După cum puteți vedea, vom folosi "osascript" pentru a începe embedul AppleScript. Următoarea piesă, "-e", este utilizată pentru a separa diferite linii, care sunt fiecare încapsulate în citate simple. Deci, dacă vrem să încorporăm mai multe linii de AppleScript, ar arăta astfel:

 osascript -e 'spune cererea "Finder"' -e "activa" -e 'spune "

Acesta este un script de bază, de trei linii împărțit de comutatoarele -e. Având în vedere aceste cunoștințe, trebuie să reformăm scenariul nostru de mai sus. A face acest lucru poate deveni puțin confuz, așa că îmi place să urmez un model foarte specific. Mai întâi, eliminați indentarea și spațiul alb.

 încercați să spuneți că aplicația "Finder" a setat this_folder la (destinația ferestrei din față) ca alias setat acest_folder pe calea POSIX a acestui_folder returnați acest_folder sfîrșit spuneți sfîrșit încercați să setați acest_folder pe calea POSIX a (calea spre desktop) return this_folder

Apoi, înfășurați fiecare linie într-o singură citare și precede-o cu -e, astfel încât script-ul shell poate parse diferite linii.

 -e 'a încerca' -e 'spune aplicației' Finder '' -e 'a setat acest_folder la (ținta ferestrei frontale) ca alias' -e 'setat acest_folder pe calea POSIX a acestui_folder' -e 'return this_folder' end spune -e 'sfarsit try' -e 'setat acest_folder pe calea POSIX a lui (path to desktop)' -e 'return this_folder'

În cele din urmă, eliminați toate pauzele și plasați osascript comandă la început.

 osascript -e 'try' -e 'spune aplicației "Finder"' -e 'a setat acest_folder la (ținta ferestrei din față) ca alias' -e 'setat acest_folder pe calea POSIX a acestui_folder' -e 'return this_folder' - e 'sfarsitul spune' -e 'sfarsit try' -e 'setat acest_folder pe calea POSIX a lui (path to desktop)' -e 'return this_folder'

Pasul 3. Aruncați-l pe toți împreună

Pentru trucul nostru final, vom folosi calea returnată din AppleScript ca punct de pornire pentru scriptul shell care creează fișierele. Pentru a face acest lucru, trebuie să aruncăm rezultatul scriptului într-o variabilă, apoi să numim variabila atunci când avem nevoie de o cale de pornire.

Înainte de a examina scriptul shell completat, să analizăm sintaxa pentru atribuirea variabilei:

 myPath = $ (osascript -e 'AppleScript merge aici')

Aici am creat o variabilă numită "myPath" și apoi am setat-o ​​la un AppleScript. Deoarece aceasta va returna o cale, putem folosi această variabilă în locul unei căi.

 cd $ myPath;

Cam despre asta e. Acum să aruncăm toate aceste lucruri împreună într-o singură comandă gigantică.

 MyPath = $ (osascript -e 'încercați' -e 'spuneți aplicației "Finder"' -e 'a setat acest_folder la (ținta ferestrei frontale) ca alias "-e" setat acest_folder pe calea POSIX a acestui_folder " return this_folder '-e' sfarsit spune -e 'sfarsit try' -e 'setat acest_folder pe calea POSIX a lui (path to desktop) -e' return this_folder '); cd $ myPath; mkdir interogare; cd interogare; atingeți index.html style.css script.js

Succes!

Comanda ar trebui să fie pe deplin funcțională. Lipiți-l în Alfred și dați-i un test de testare utilizând același prefix "nw" ca mai înainte. Rezultatul ar trebui să fie un nou dosar în fereastra curentă Finder cu numele pe care l-ați trimis ca parametru.


Inserați scriptul terminat în câmpul Comandă

Fă-ți propriul

Dacă ați reușit totul prin acest tutorial, felicitări, asta a fost chiar provocarea! Acum ați codat prima dvs. extensie Alfred. Cu cunoștințele dvs. noi despre combinarea scripturilor shell și AppleScripts, ar trebui să puteți crea câteva extensii destul de fantastice pe cont propriu.

Dacă aveți idei pentru noi extensii sau ați creat unele pe cont propriu, lăsați un comentariu de mai jos și spuneți-ne.