Schreiben Sie eine Alfred-Erweiterung, um Dateien im Handumdrehen zu erstellen

Vor kurzem haben wir uns angesehen, wie Sie mit Terminal schnell Dateien erstellen können. Heute werden wir dieses Wissen überprüfen und anwenden, um unsere eigene Alfred-Erweiterung zu erstellen, die sofort ein neues Dateiverzeichnis erstellt. Auf dem Weg dorthin werden wir sogar ein paar AppleScript-Dateien verwenden, damit Sie wirklich eine gute Dosis geekiger Güte bekommen können.


Was wir bauen

Wenn ich als Entwickler ein neues Projekt beginne, durchlaufe ich normalerweise denselben Prozess. Zuerst muss ich einen Ordner erstellen und ihn dann benennen. Dann muss ich einen Texteditor öffnen und jede Datei, die ich enthalten möchte, einzeln erstellen (index.html, style.css usw.)..

Offensichtlich ist das ein Schmerz, also habe ich ein paar Dinge ausprobiert, um das zu umgehen. Ich habe versucht, ein leeres Projekt in der Hand zu halten, das ich einfach per Drag & Copy ziehen kann, und mithilfe von Terminal die Dateien manuell erstellt.

Meine derzeitige Lieblingsmethode ist jedoch, Alfred aufzurufen. Geben Sie den Namen des Ordners ein, den ich erstellen möchte, und klicken Sie auf Rückkehr. Das ist es! Alle weiteren Schritte sind vollständig automatisiert, was mir in einer Woche viel Zeit spart.

Offensichtlich ist diese Funktionalität nicht im Lieferumfang von Alfred enthalten, also müssen wir sie einbauen. Glücklicherweise ist das recht einfach!

Spitze: Dieses Tutorial ist nicht nur für Entwickler gedacht. Folgen Sie und passen Sie es an, um Dateien jeglicher Art zu erstellen!


Terminal Hausaufgaben

Wie ich bereits in der Einführung erwähnt habe, habe ich in einem früheren Artikel die Grundlagen der Erstellung von Terminal-Dateien behandelt. Sie sollten hier jedoch noch einmal erwähnt werden. Wir sind alle auf derselben Seite.

Es gibt drei grundlegende Shell-Skriptbefehle, die wir heute verwenden werden: cd, mkdir und touch. Mal sehen, wie jeder arbeitet.

Ändern Sie Ihr Verzeichnis

Wenn Sie Terminal öffnen, sollten Sie standardmäßig im Home-Ordner Ihres Macs beginnen. Dies dient als Ausgangspunkt für alle Befehle, die einen Standort erfordern. Wenn Sie diesen Ort ändern möchten, verwenden Sie die CD Befehl.

CD-Desktop /

Dies teilt dem Terminal mit, dass Sie das aktuelle Verzeichnis in "Desktop" ändern möchten. Wenn wir das später von Alfred machen, müssen wir etwas genauer sein:

/ Benutzer / MacBookPrime / Desktop

Hier habe ich den vollständigen Pfad zu meinem Desktop-Ordner angegeben. Es ist äußerst wichtig, dass Sie dieses spezielle Snippet für Ihre eigene Maschine anpassen. Ersetzen Sie dazu meinen Benutzernamen durch Ihren eigenen. Geben Sie Ihren Benutzernamen zwischen "Benutzer /" und "Desktop /" in das folgende Snippet ein:

/ Benutzer / YourUserNameGoesHere / Desktop

Ein neues Verzeichnis erstellen

Sobald wir das Verzeichnis wechseln, müssen wir ein neues Verzeichnis (Ordner) erstellen. Dazu verwenden wir die mkdir Befehl.

mkdir mySite

Dadurch wird im aktuellen Verzeichnis ein neuer Ordner mit dem Namen "mySite" erstellt. In unserem Fall ist dies der Desktop.

Eine neue Datei erstellen

Nun kommt der beste Teil: Wie erstelle ich eine neue Datei? Aus irgendeinem Grund erscheint es mir dumm, dass ich eine App öffnen muss, um eine Datei zu erstellen. Ich sollte einfach in der Lage sein, leere Dateien mit beliebiger Erweiterung zu löschen, ganz nach Belieben. Mit dem berühren Befehl können wir genau das tun:

Berühren Sie textFile.txt

Dadurch wird im aktuellen Verzeichnis eine neue Nur-Text-Datei mit dem Namen "textFile.txt" erstellt. Einfach richtig?

Setze alles zusammen

Jetzt haben wir alle Kenntnisse, die wir benötigen, um unser Shell-Skript zu erstellen. So sieht es aus, wenn wir diese Befehle kombinieren (nach rechts scrollen, um das gesamte Snippet zu sehen).

CD / Benutzer / MacBookPrime / Desktop; mkdir mySite; cd mySite; Berühren Sie index.html style.css script.js

Beachten Sie, dass verschiedene Befehle durch ein Semikolon getrennt sind und dass Touch-Befehle nur durch ein Leerzeichen zwischen den verschiedenen Dateinamen verkettet werden können.

Erstellen einer Alfred-Erweiterung

Nachdem wir nun unser grundlegendes Shell-Skript herausgefunden haben, ist es an der Zeit, die Alfred-Erweiterung zu erstellen. Glücklicherweise brauchen wir dafür keine speziellen Entwicklerwerkzeuge, nur Alfred! Sie benötigen jedoch das Powerpack, die Premium-Version von Alfred.

Schritt 1. Erstellen Sie eine neue Erweiterung

Starten Sie Alfred und klicken Sie auf das winzige Zahnrad oben rechts, um die Einstellungen anzuzeigen. Klicken Sie hier auf die Registerkarte "Erweiterungen". Möglicherweise haben Sie hier bereits einige Erweiterungen von Drittanbietern.


Klicken Sie auf die Erweiterungsregisterkarte

Klicken Sie auf der Registerkarte "Erweiterungen" auf das kleine Plusfeld unten links im Fenster. Daraufhin sollte ein Menü mit den verschiedenen Arten von Erweiterungen angezeigt werden, die Sie erstellen können:


Wähle "Shell Script"

Wählen Sie hier "Shell Script". Machen Sie sich keine Sorgen, wenn Sie keine Ahnung haben, wie man ein Shellskript schreibt. Wir haben oben bereits eines geschrieben!

Schritt 2. Name und andere Details

Wenn Sie eine neue Erweiterung erstellen, können Sie ihr einen Namen geben und Ihre Informationen eingeben, falls Sie sie verteilen möchten. Auf diese Weise können die Leute sehen, von wem es stammt.


Geben Sie die Kreditinformationen ein und klicken Sie auf Speichern

Darüber hinaus können Sie das Symbol anpassen. Ich denke, das Terminalsymbol ist für unsere Zwecke gut geeignet, aber Sie können Ihr eigenes Bild ziehen.

Schritt 3. Geben Sie Alfred Details ein

Als Nächstes müssen Sie den Titel, die Beschreibung und das Schlüsselwort der Erweiterung eingeben.


Geben Sie hier die Details für Alfred ein

Dies mag im vorherigen Fenster etwas überflüssig erscheinen, ist es aber nicht. Der vorherige Bildschirm diente nur zu Kreditzwecken. Dieser bestimmt, welche Informationen Alfred tatsächlich anzeigt, wenn Sie auf die Erweiterung zugreifen.


Alfred zeigt die Details, die Sie eingegeben haben, wenn Sie die Nebenstelle anrufen

Beachten Sie, dass ich "nw" als Abkürzung eingestellt habe. Wenn Sie also Alfred eingeben, wird bei der ersten angezeigten Option der Titel und die Beschreibung angezeigt, die ich eingegeben habe.

Schritt 4. Geben Sie das Skript ein

Nun ist es an der Zeit, die Shell-Befehle einzugeben, die wir zuvor geschrieben haben, mit ein wenig Anpassung. Hier ist der Ausschnitt von vor:

CD / Benutzer / MacBookPrime / Desktop; mkdir mySite; cd mySite; Berühren Sie index.html style.css script.js

Statt nun jedes Mal einen Ordner mit dem Namen "mySite" zu erstellen, verwenden wir den Text, den der Benutzer in Alfred eingibt. Wir tun dies durch Ersetzen meine Seite mit Abfrage.

 CD / Benutzer / MacBookPrime / Desktop; mkdir Abfrage; CD Abfrage; Berühren Sie index.html style.css script.js

Dieses Setup erfordert die Eingabe durch den Benutzer. Stellen Sie daher sicher, dass die Einstellung "Parameter" auf "Erforderlicher Parameter" gesetzt ist. Vergessen Sie auch nicht, den Pfad zu Ihrem Desktop anzupassen.


Geben Sie das Skript in das Befehlsfeld ein

Wenn Sie mit diesem Schritt fertig sind, klicken Sie auf die Schaltfläche Speichern. Das ist es! Du bist alle fertig.

Testen Sie die Erweiterung

Um sicherzustellen, dass alles ordnungsgemäß funktioniert hat, schließen Sie das Einstellungsfenster und starten Sie Alfred erneut. Geben Sie "nw" für die Verknüpfung ein, gefolgt vom Namen des Ordners, den Sie erstellen möchten.


Testen Sie die neue Erweiterung

Das Ergebnis der Erweiterung sollte ein Ordner mit dem Namen sein, den Sie mit den von Ihnen erstellten Dateien gewählt haben berühren Befehl.


Das Ergebnis der Erweiterung

Wenn es funktioniert, sind Sie fertig. Die nächsten Schritte sind vollständig optional. Wenn Sie eine Herausforderung haben, fahren Sie fort!

Erweitert: Damit es in jedem Ordner funktioniert

Die obige Methode erstellt immer einen neuen Ordner auf Ihrem Desktop. In Wahrheit arbeiten viele Leute so, aber ich empfehle niemals solche unordentlichen Praktiken. Ich bin ein großer Befürworter dafür, dass Ihr Desktop sauber bleibt, also habe ich mich vorgenommen, das Skript zu verbessern.

Wir möchten den Finder abfragen und den Pfad des vordersten Fensters übernehmen. Wenn kein Fenster vorhanden ist, sollten wir standardmäßig den Desktop verwenden. Wenn wir später die Dateien erstellen, verwenden wir den Pfad ab dem ersten Schritt. In der Praxis können Sie zu einem Ordner auf Ihrem Laufwerk navigieren, die Alfred-Erweiterung ausführen und schnell ein neues Verzeichnis mit Dateien erstellen.

Schritt 1. AppleScript zur Rettung

Offensichtlich ist der knifflige Teil hier ein Shell-Skript, mit dem das vordere Finder-Fenster zu einem bestimmten Zeitpunkt automatisch herausgefunden wird. Wie ich herausfand, ist AppleScript der einfachste Weg, um ein Finder-Fenster zu inspizieren. Bei doppelten Sonderlingspunkten können Sie ein AppleScript tatsächlich in ein Shellskript einbetten und umgekehrt.

Das Skript, das wir benötigen, wird einige grundlegende Schritte enthalten:

  1. Versuchen Sie, den Pfad des vordersten Finder-Fensters abzurufen
  2. Wenn der Versuch erfolgreich ist, geben Sie den Pfad dieses Fensters zurück
  3. Wenn der Versuch fehlschlägt (es ist kein Finder-Fenster vorhanden), geben Sie den Pfad des Desktops zurück

Ein Geschwindigkeitsfaktor, dem wir auf dieser Reise begegnen, ist, dass AppleScript standardmäßig ein anderes Format für Dateipfade als Shell-Skripts verwendet. Anstelle des Schrägstrichs, den Sie wahrscheinlich gewohnt sind (Benutzer / Benutzername / Desktop), verwendet AppleScript Doppelpunkte zum Trennen der Verzeichnisse (Benutzer: Benutzername: Desktop)..

Dies ist jedoch leicht zu handhaben. Wir müssen nur sicherstellen, dass Sie in unserem Skript auf den POSIX-Pfad verweisen. So sieht das fertige Produkt aus.

[apfelschrift]
Versuchen
Anwendung "Finder" mitteilen
setze this_folder auf (das Ziel des Frontfensters) als Alias
setze this_folder auf POSIX-Pfad von this_folder
diesen Ordner zurückgeben
ende sagen
ende versuchen

setze diesen Ordner auf POSIX-Pfad von (Pfad zum Desktop)
diesen Ordner zurückgeben
[/ applescript]

Wie Sie sehen, haben wir einfach die oben beschriebenen Schritte durchlaufen. Das Ergebnis dieses Skripts ist immer ein Dateipfad. In den nächsten Schritten erfahren Sie, wie Sie diesen Pfad in unserem Shell-Skript verwenden.

Schritt 2. Das Script neu formatieren

Als nächstes müssen wir das gerade geschriebene AppleScript in unser Shell-Skript einbetten. Dazu verwenden wir folgende Syntax:

 osScript -e 'AppleScript geht hier'

Wie Sie sehen, verwenden wir "osascript", um das Einbetten von AppleScript zu starten. Das nächste Stück "-e" wird verwendet, um verschiedene Zeilen zu trennen, die jeweils in einfachen Anführungszeichen stehen. Wenn wir also mehrere Zeilen von AppleScript einbetten möchten, würde dies folgendermaßen aussehen:

 osascript -e 'tell Anwendung "Finder"' -e 'aktivieren' -e 'end tell'

Dies ist ein sehr einfaches, dreizeiliges Skript, das durch -e-Schalter aufgeteilt wird. Mit diesem Wissen müssen wir unser Skript oben neu formatieren. Dies kann etwas verwirrend sein, daher folge ich gerne einem ganz bestimmten Muster. Zuerst streichen Sie die Einrückung und den zusätzlichen Leerraum aus.

 try tell-Anwendung "Finder" setze this_folder auf (das Ziel des Frontfensters), wenn Alias ​​this_folder auf POSIX-Pfad dieses_Ordners gesetzt ist. return_e_folder end

Umschließen Sie dann jede Zeile in ein einzelnes Anführungszeichen und voranstellen Sie -e, damit das Shell-Skript die verschiedenen Zeilen analysieren kann.

 -e 'try' -e 'tell Anwendung "Finder"' -e 'setze this_folder auf (das Ziel des Frontfensters), als Alias' -e 'this_folder auf POSIX-Pfad dieses_Ordners' -e ' end tell '-e' end try '-e' setze this_folder auf den POSIX-Pfad von (Pfad zum Desktop) '-e' return this_folder '

Zum Schluss streichen Sie alle Zeilenumbrüche aus und platzieren Sie die osascript Befehl am Anfang.

 osse -e 'try' -e 'tell Anwendung "Finder"' -e 'setze diesen_Ordner auf (das Ziel des Frontfensters) als Alias' -e 'set_dieser_Ordner auf POSIX-Pfad dieses_Ordners' -e 'return diesen_Ordner' - e 'end tell' -e 'end try' -e 'setze this_folder auf den POSIX-Pfad von (Pfad zum Desktop)' -e 'return this_folder'

Schritt 3. Wirf alles zusammen

Als letzten Trick verwenden wir den vom AppleScript zurückgegebenen Pfad als Ausgangspunkt für unser Shell-Skript, mit dem die Dateien erstellt werden. Dazu müssen wir das Ergebnis des Skripts in eine Variable schreiben und diese Variable dann aufrufen, wenn wir einen Startpfad benötigen.

Bevor wir das fertige Shell-Skript betrachten, wollen wir uns die Syntax für die Zuweisung der Variablen ansehen:

 myPath = $ (osScript -e "AppleScript geht hier")

Hier haben wir eine Variable namens "myPath" erstellt und dann auf ein AppleScript gesetzt. Da dies einen Pfad zurückgibt, können wir diese Variable anstelle eines Pfads verwenden.

 cd $ myPath;

Das ist alles dazu. Lassen Sie uns nun all dieses Zeug zu einem riesigen Befehl zusammenfassen.

 myPath = $ (osascript -e 'try' -e 'tell Anwendung "Finder"' -e 'setzt this_folder auf (das Ziel des Frontfensters) als Alias' -e 'this_folder auf den POSIX-Pfad dieses_folder' -e ' zurückgeben this_folder '-e' end tell '-e' end versuchen '-e' set_ this_folder auf den POSIX-Pfad von (Pfad zum Desktop) '-e' return this_folder '); cd $ myPath; mkdir Abfrage; CD Abfrage; Berühren Sie index.html style.css script.js

Erfolg!

Der Befehl sollte jetzt voll funktionsfähig sein. Fügen Sie ihn in Alfred ein und machen Sie eine Probefahrt mit demselben "nw" -Präfix wie zuvor. Das Ergebnis sollte ein neuer Ordner in Ihrem aktuellen Finder-Fenster mit dem Namen sein, den Sie als Parameter übergeben haben.


Fügen Sie das fertige Skript in das Befehlsfeld ein

Mach dein eigenes

Wenn Sie es durch dieses Tutorial geschafft haben, herzlichen Glückwunsch, das war eine ziemliche Herausforderung! Sie haben jetzt Ihre erste Alfred-Erweiterung manuell codiert. Mit Ihren neu erworbenen Kenntnissen über die Kombination von Shell-Skripts und AppleScripts sollten Sie in der Lage sein, selbst einige fantastische Erweiterungen zu erstellen.

Wenn Sie Ideen für neue Erweiterungen haben oder selbst erstellt haben, hinterlassen Sie einen Kommentar und lassen Sie es uns wissen.