Advertisement
  1. Computer Skills
  2. Automation

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

by
Read Time:11 minsLanguages:
This post is part of a series called Taming The Terminal.
Quick Tip: Lightning Fast File Creation with Terminal

German (Deutsch) translation by Katharina Grigorovich-Nevolina (you can also view the original English article)

Kürzlich 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, mit der sofort ein neues Verzeichnis von Dateien erstellt wird. Unterwegs werden wir sogar auf AppleScript stoßen, damit Sie wirklich Ihre Dosis geekiger Güte bekommen.


Was bauen wir?

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 aufnehmen möchte (index.html, style.css usw.), einzeln erstellen.

Offensichtlich ist dies ein Schmerz, also habe ich eine Reihe von Dingen versucht, um es zu umgehen. Ich habe versucht, ein leeres Projekt zur Hand zu haben, das ich einfach ziehen und kopieren kann. Mit Terminal können Sie die Dateien manuell erstellen. Das funktioniert.

Meine derzeitige Lieblingsmethode ist es, Alfred aufzurufen, den Namen des Ordners einzugeben, den ich erstellen möchte, und die Eingabetaste zu drücken. Das ist es! Alle anderen Schritte sind vollständig automatisiert, was mir in einer bestimmten Woche viel Zeit spart.

Offensichtlich ist diese Funktionalität bei Alfred nicht sofort verfügbar, daher müssen wir sie einbauen. Glücklicherweise ist dies ziemlich einfach!

Tipp: Dieses Tutorial ist nicht nur für Entwickler gedacht. Folgen Sie ihm und optimieren Sie ihn, um Dateien jeglicher Art zu erstellen!


Terminal Hausaufgaben

Wie ich in der Einleitung erwähnt habe, habe ich in einem früheren Artikel die Grundlagen der Terminal-Dateierstellung behandelt, aber sie sind hier noch einmal erwähnenswert, damit wir alle auf derselben Seite sind.

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

Ändern Sie Ihr Verzeichnis

Wenn Sie Terminal öffnen, sollten Sie standardmäßig im Home-Ordner Ihres Mac beginnen. Dies dient als Ausgangspunkt für alle Befehle, für die ein Speicherort erforderlich ist. Wenn Sie diesen Speicherort ändern möchten, verwenden Sie den Befehl cd.

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

Hier habe ich den vollständigen Pfad zu meinem Desktop-Ordner eingefügt. 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:

Ein neues Verzeichnis erstellen

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

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

Neue Datei erstellen

Jetzt kommt der beste Teil: wie man eine neue Datei erstellt. Aus irgendeinem Grund erscheint es mir albern, dass ich eine App öffnen muss, um eine Datei zu erstellen. Ich sollte nur in der Lage sein, leere Dateien mit jeder gewünschten Erweiterung nach Belieben zu löschen. Mit dem touch-Befehl können wir genau das tun:

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

Alles zusammen

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

Beachten Sie, dass verschiedene Befehle durch ein Semikolon getrennt sind und dass Berührungsbefehle nur mit einem Leerzeichen zwischen den verschiedenen Dateinamen verkettet werden können.

Erstellen einer Alfred-Erweiterung

Nachdem wir unser grundlegendes Shell-Skript herausgefunden haben, ist es Zeit, die Alfred-Erweiterung tatsächlich zu erstellen. Zum Glück brauchen wir dafür keine speziellen Entwickler-Werkzeuge, nur Alfred! Sie benötigen jedoch das Powerpack, die Premium-Version von Alfred.

Schritt 1. Erstellen Sie eine neue Erweiterung

Starten Sie zunächst Alfred und klicken Sie auf das winzige Zahnrad oben rechts, um die Einstellungen aufzurufen. Klicken Sie hier auf die Registerkarte "Erweiterungen". Möglicherweise sind hier bereits einige Erweiterungen von Drittanbietern vorhanden.

AlfredAlfredAlfred
Klicken Sie auf die Registerkarte Erweiterungen

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

AlfredAlfredAlfred
Wählen Sie "Shell Script"

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

Schritt 2. Name und andere Details

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

AlfredAlfredAlfred
Geben Sie die Kreditinformationen ein und klicken Sie auf Speichern

Darüber hinaus können Sie das Symbol anpassen. Ich denke, das Terminal-Symbol ist für unsere Zwecke in Ordnung, aber Sie können gerne Ihr eigenes Bild hineinziehen.

Schritt 3. Geben Sie Alfred Details ein

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

AlfredAlfredAlfred
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. Hiermit wird festgelegt, welche Informationen Alfred tatsächlich anzeigt, wenn Sie auf die Nebenstelle zugreifen.

AlfredAlfredAlfred
Alfred zeigt die Details an, die Sie beim Anrufen der Nebenstelle eingegeben haben

Beachten Sie, dass ich "nw" als Verknüpfung festgelegt habe. Wenn ich dies in Alfred eingebe, zeigt die erste Option, die angezeigt wird, den Titel und die Beschreibung an, die ich eingegeben habe.

Schritt 4. Geben Sie das Skript ein

Jetzt ist es an der Zeit, die zuvor geschriebenen Shell-Befehle mit ein wenig Anpassung einzugeben. Hier ist der Ausschnitt von früher:

Anstatt jetzt jedes Mal einen Ordner mit dem Namen "mySite" zu erstellen, verwenden wir den Text, den der Benutzer in Alfred eingibt. Dazu ersetzen wir mySite durch {query}.

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

AlfredAlfredAlfred
Geben Sie das Skript in das Feld Befehl ein

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

Testen Sie die Erweiterung

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

AlfredAlfredAlfred
Probieren Sie die neue Erweiterung aus

Das Ergebnis der Erweiterung sollte ein Ordner mit dem Namen sein, den Sie mit den Dateien ausgewählt haben, die Sie mit dem Befehl touch erstellt haben.

AlfredAlfredAlfred
Das Ergebnis der Erweiterung

Wenn es funktioniert, sind Sie fertig. Die nächsten Schritte sind völlig optional. Wenn Sie sich einer Herausforderung stellen möchten, fahren Sie fort!

Erweitert: Damit es in jedem Ordner funktioniert

Die oben beschriebene Methode erstellt immer einen neuen Ordner auf Ihrem Desktop. In Wahrheit arbeiten so viele Leute, aber ich empfehle niemals solche chaotischen Praktiken. Ich bin ein großer Befürworter dafür, Ihren Desktop sauber zu halten, und habe mich daher vorgenommen, das Skript zu verbessern.

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

Schritt 1. AppleScript zur Rettung

Offensichtlich ist der schwierige Teil hier, ein Shell-Skript zu erhalten, um das vorderste Finder-Fenster zu einem bestimmten Zeitpunkt automatisch herauszufinden. Wie sich herausstellt, ist AppleScript der einfachste Weg, ein Finder-Fenster zu überprüfen. Für doppelte Nerd-Punkte können Sie ein AppleScript tatsächlich in ein Shell-Skript einbinden und umgekehrt.

Das Skript, das wir benötigen, enthält einige grundlegende Schritte:

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

Ein Geschwindigkeitsschub, auf den wir auf dieser Reise stoßen, ist, dass AppleScript standardmäßig ein anderes Format für Dateipfade verwendet als Shell-Skripte. Anstelle des Schrägstrichs, an den Sie wahrscheinlich gewöhnt sind (Benutzer/Benutzername/Desktop), verwendet AppleScript Doppelpunkte, um Verzeichnisse zu trennen (Benutzer: Benutzername: Desktop).

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

[applescript]
try
tell application "Finder"
set this_folder to (the target of the front window) as alias
set this_folder to POSIX path of this_folder
return this_folder
end tell
end try

set this_folder to POSIX path of (path to desktop)
return this_folder
[/applescript]

Wie Sie sehen können, haben wir einfach alle oben beschriebenen Schritte durchlaufen. Das Ergebnis dieses Skripts ist immer ein Dateipfad. In den nächsten Schritten werden wir sehen, wie dieser Pfad in unserem Shell-Skript verwendet wird.

Schritt 2. Neuformatierung des Skripts

Unsere nächste Aufgabe ist es, das AppleScript, das wir gerade geschrieben haben, in unser Shell-Skript einzubetten. Dazu verwenden wir die folgende Syntax:

Wie Sie sehen können, verwenden wir "osascript", um mit dem Einbetten von AppleScript zu beginnen. Das nächste Stück, "-e", wird verwendet, um verschiedene Zeilen zu trennen, die jeweils in einfache Anführungszeichen gesetzt sind. Wenn wir also mehrere Zeilen AppleScript einbetten möchten, sieht dies folgendermaßen aus:

Dies ist ein sehr einfaches dreizeiliges Skript, das durch -e-Schalter aufgeteilt ist. Vor diesem Hintergrund müssen wir unser Skript oben neu formatieren. Dies zu tun kann etwas verwirrend sein, daher folge ich gerne einem ganz bestimmten Muster. Entfernen Sie zuerst die Einkerbung und das zusätzliche Leerzeichen.

Schließen Sie als Nächstes jede Zeile in ein einfaches Anführungszeichen ein und stellen Sie -e voran, damit das Shell-Skript die verschiedenen Zeilen analysieren kann.

Entfernen Sie zum Schluss alle Zeilenumbrüche und setzen Sie den Befehl osascript am Anfang.

Schritt 3. Werfen Sie alles zusammen

Für unseren 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 werfen und diese Variable dann aufrufen, wenn wir einen Startpfad benötigen.

Bevor wir uns das fertige Shell-Skript ansehen, schauen wir uns die Syntax zum Zuweisen der Variablen an:

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

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

Erfolg!

Der Befehl sollte jetzt voll funktionsfähig sein. Fügen Sie es in Alfred ein und machen Sie eine Probefahrt mit dem gleichen "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.

AlfredAlfredAlfred
Fügen Sie das fertige Skript in das Feld Befehl ein

Machen Sie Ihr Eigenes

Wenn Sie es durch dieses Tutorial geschafft haben, herzlichen Glückwunsch, das war eine ziemliche Herausforderung! Sie haben jetzt Ihre erste Alfred-Erweiterung von Hand codiert. Mit Ihrem neu gewonnenen Wissen über das Kombinieren von Shell-Skripten und AppleScripts sollten Sie in der Lage sein, einige ziemlich fantastische Erweiterungen selbst zu erstellen.

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

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.