Écrivez une extension Alfred pour créer des fichiers à la volée

Récemment, nous avons examiné comment utiliser Terminal pour créer rapidement des fichiers. Aujourd'hui, nous allons examiner et appliquer ces connaissances pour créer notre propre extension Alfred, qui crée un nouveau répertoire de fichiers en un instant. Nous allons même faire un peu de AppleScript en cours de route afin que vous puissiez vraiment obtenir votre dose de bonté geek.


Ce que nous construisons

En tant que développeur, chaque fois que je commence un nouveau projet, je suis généralement soumis au même processus. Je dois d'abord créer un dossier, puis le nommer. Ensuite, je dois ouvrir un éditeur de texte et créer individuellement chaque fichier que je veux inclure (index.html, style.css, etc.).

Évidemment, c'est une douleur, alors j'ai essayé de faire plusieurs choses pour la contourner. J'ai essayé de garder un projet vierge sous la main que je peux simplement faire glisser et copier, en utilisant Terminal pour créer les fichiers manuellement, les travaux.

Ma méthode favorite actuelle consiste à appeler Alfred, à taper le nom du dossier que je veux créer et à cliquer sur Revenir. C'est tout! Le reste des étapes est entièrement automatisé, ce qui me permet de gagner beaucoup de temps au cours d'une semaine donnée..

De toute évidence, cette fonctionnalité n’est pas livrée avec Alfred, elle doit donc être intégrée. Heureusement, cela est assez simple.!

Pointe: Ce tutoriel ne concerne pas que les développeurs. Suivez-le et ajustez-le pour créer des fichiers de tout type!


Devoirs du terminal

Comme je l'ai mentionné dans l'introduction, j'ai déjà abordé les principes de base de la création de fichiers Terminal dans un article précédent, mais il convient de les mentionner de nouveau ici, pour que nous soyons tous sur la même page..

Nous allons utiliser aujourd'hui trois commandes de script shell: cd, mkdir et touch. Voyons comment chacun fonctionne.

Changer votre répertoire

Par défaut, lorsque vous ouvrez Terminal, vous devez commencer par le dossier personnel de votre Mac. Cela servira de point de départ pour toute commande nécessitant un emplacement. Si vous souhaitez modifier cet emplacement, vous utilisez le CD commander.

cd Desktop /

Cela indique au terminal que vous voulez changer le répertoire actuel en "Bureau". Plus tard, quand nous ferons cela depuis Alfred, nous devrons être un peu plus spécifiques:

/ Utilisateurs / MacBookPrime / Desktop

Ici, j'ai inclus le chemin d'accès complet à mon dossier Desktop. Il est extrêmement important de personnaliser cet extrait pour votre propre ordinateur. Pour ce faire, remplacez mon nom d'utilisateur par le vôtre. Insérez votre nom d'utilisateur entre "Utilisateurs /" et "Bureau /" dans l'extrait de code ci-dessous:

/ Utilisateurs / YourUserNameGoesHere / Desktop

Faire un nouveau répertoire

Une fois que nous avons changé de répertoire, nous devrons créer un nouveau répertoire (dossier). Pour ce faire, nous utilisons le mkdir commander.

mkdir mySite

Cela créera un nouveau dossier nommé "mySite" dans le répertoire actuel. Dans notre cas, ce sera le bureau.

Faire un nouveau fichier

Maintenant, la meilleure partie: comment créer un nouveau fichier. Pour une raison quelconque, il me semble stupide que je doive ouvrir une application pour créer un fichier. Je devrais juste être capable de décomposer des fichiers vides, avec toute extension que je veux, à volonté. Avec le toucher commande, nous pouvons faire exactement cela:

touchez textFile.txt

Cela créera un nouveau fichier de texte brut dans le répertoire actuel avec le nom "textFile.txt". Facile à droite?

Mets le tout ensemble

Nous avons maintenant toutes les connaissances nécessaires pour extraire notre script shell. Voici à quoi cela ressemble quand nous combinons ces commandes (faites défiler vers la droite pour voir l'extrait entier).

cd / Utilisateurs / MacBookPrime / Desktop; mkdir mySite; cd mySite; touchez index.html style.css script.js

Notez que les différentes commandes sont séparées par un point-virgule et que les commandes tactiles peuvent être chaînées en utilisant uniquement un espace entre les différents noms de fichiers..

Créer une extension Alfred

Maintenant que nous avons compris notre script shell de base, il est temps de créer l'extension Alfred. Heureusement, nous n’avons pas besoin d’outils spéciaux pour les développeurs, juste Alfred! Vous aurez cependant besoin du Powerpack, qui est la version premium d’Alfred.

Étape 1. Créer une nouvelle extension

Pour commencer, lancez Alfred et cliquez sur le petit engrenage en haut à droite pour afficher les préférences. De là, cliquez sur l'onglet "Extensions". Vous pouvez ou non avoir quelques extensions tierces déjà ici.


Cliquez sur l'onglet Extensions

Dans l'onglet Extensions, cliquez sur le petit bouton plus en bas à gauche de la fenêtre. Cela devrait faire apparaître un menu des différents types d'extensions que vous pouvez créer:


Choisissez "Shell Script"

De là, choisissez "Shell Script". Ne vous inquiétez pas si vous ne savez pas comment écrire un script shell, nous en avons déjà écrit un ci-dessus.!

Étape 2. Nom et autres détails

Lorsque vous créez une nouvelle extension, vous pouvez lui attribuer un nom et insérer vos informations au cas où vous alliez les distribuer. De cette façon, les gens peuvent voir de qui ça vient.


Entrez les informations de crédit et cliquez sur Enregistrer.

De plus, vous pouvez personnaliser l'icône. Je pense que l'icône du terminal convient parfaitement à nos besoins, mais n'hésitez pas à faire glisser votre propre image.

Étape 3. Entrez Alfred Détails

Ensuite, vous devrez entrer le titre, la description et le mot clé de l'extension..


Entrez les détails pour Alfred ici

Cela peut sembler un peu redondant avec la fenêtre précédente, mais ce n’est pas le cas. L’écran précédent ne servait qu’à des fins de crédit. Il détermine les informations qu’Alfred affiche lorsque vous accédez à l’extension..


Alfred affiche les détails que vous avez entrés lorsque vous appelez le poste

Notez que j'ai défini "nw" comme raccourci. Ainsi, lorsque je tape ceci dans Alfred, la première option qui apparaît affiche le titre et la description que j'ai saisis..

Étape 4. Entrez le script

Il est maintenant temps d'entrer dans les commandes shell que nous avons écrites auparavant, avec un peu de personnalisation. Voici l'extrait d'avant:

cd / Utilisateurs / MacBookPrime / Desktop; mkdir mySite; cd mySite; touchez index.html style.css script.js

Maintenant, plutôt que de créer à chaque fois un dossier appelé "mySite", utilisons le texte que l'utilisateur entre dans Alfred. Nous faisons cela en remplaçant mon site avec question.

 cd / Utilisateurs / MacBookPrime / Desktop; mkdir requête; cd requête; touchez index.html style.css script.js

Cette configuration nécessite la saisie de l'utilisateur. Veillez donc à définir le paramètre "Paramètre" sur "Paramètre requis". De plus, n'oubliez pas de personnaliser le chemin d'accès à votre bureau.


Entrez le script dans le champ Commande

Une fois que vous avez terminé cette étape, cliquez sur le bouton Enregistrer. C'est tout! Vous avez tous fini.

Testez l'extension

Pour vous assurer que tout fonctionne correctement, quittez la fenêtre Préférences et relancez Alfred. Tapez "nw" pour le raccourci, suivi du nom du dossier que vous voulez créer.


Essayer la nouvelle extension

Le résultat de l’extension doit être un dossier portant le nom que vous avez choisi complet avec les fichiers que vous avez créés avec le fichier. toucher commander.


Le résultat de l'extension

Si cela fonctionne, alors vous avez terminé. Les prochaines étapes sont complètement optionnelles. Si vous êtes prêt pour un défi, continuez!

Avancé: le faire fonctionner dans n'importe quel dossier

La méthode ci-dessus crée toujours un nouveau dossier sur votre bureau. En vérité, c'est comme ça que beaucoup de gens travaillent, mais je ne recommande jamais de telles pratiques compliquées. Je suis un grand partisan de la propreté de votre bureau. Je me suis donc attaché à améliorer le script..

Ce que nous voulons faire, c'est interroger le Finder et saisir le chemin de la fenêtre la plus en avant. Si aucune fenêtre n'existe, nous devrions utiliser par défaut le bureau. Ensuite, lorsque nous créerons les fichiers, nous utiliserons le chemin de la première étape. En pratique, vous pourrez accéder à un dossier sur votre lecteur, puis exécuter l'extension Alfred et créer rapidement un nouveau répertoire contenant de nombreux fichiers..

Étape 1. AppleScript à la rescousse

Évidemment, la partie délicate à résoudre ici consiste à obtenir un script shell pour déterminer automatiquement la fenêtre de recherche la plus en avant à tout moment. Il s’avère que le moyen le plus simple que je connaisse d’inspecter une fenêtre du Finder est AppleScript. Pour les points de double nerd, vous pouvez en réalité insérer un AppleScript dans un script shell, et inversement.

Le script dont nous avons besoin comportera quelques étapes de base:

  1. Essayez d'obtenir le chemin de la fenêtre la plus en avant du Finder
  2. Si le test réussit, renvoyer le chemin de cette fenêtre
  3. Si la tentative échoue (aucune fenêtre du Finder n’existe), le chemin de retour du bureau

Un problème que nous avons rencontré au cours de ce voyage est que, par défaut, AppleScript utilise un format de chemin de fichier différent de celui des scripts shell. Au lieu de la barre oblique à laquelle vous êtes probablement habitué (Utilisateurs / Nom d'utilisateur / Bureau), AppleScript utilise des deux-points pour séparer les répertoires (Utilisateurs: Nom d'utilisateur: Bureau)..

C'est assez facile à gérer cependant. Nous devons simplement nous assurer de faire référence au chemin POSIX dans notre script. Voici à quoi ressemble le produit fini.

[applescript]
essayer
dire à l'application "Finder"
définir this_folder sur (la cible de la fenêtre avant) comme alias
définir ce dossier sur le chemin POSIX de ce dossier
retourne ce dossier
fin dire
fin essayer

définir this_folder sur le chemin POSIX de (chemin d'accès au bureau)
retourne ce dossier
[/ applescript]

Comme vous pouvez le constater, nous avons simplement suivi chacune des étapes décrites ci-dessus. Le résultat de ce script sera toujours un chemin de fichier. Dans les prochaines étapes, nous verrons comment utiliser ce chemin dans notre script shell.

Étape 2. Reformater le script

Notre tâche suivante consiste à intégrer le code AppleScript que nous venons d'écrire dans notre script shell. Pour ce faire, nous utilisons la syntaxe suivante:

 osascript -e 'AppleScript va ici'

Comme vous pouvez le constater, nous utilisons "osascript" pour commencer à intégrer AppleScript. La pièce suivante, "-e", est utilisée pour séparer différentes lignes, qui sont chacune entourées de guillemets simples. Donc, si nous voulions intégrer plusieurs lignes d’AppleScript, cela ressemblerait à ceci:

 osascript -e 'dire à l'application "Finder"' -e 'activer' -e 'fin dire'

Il s’agit d’un script très basique de trois lignes divisé en commutateurs -e. Avec cette connaissance à l'esprit, nous devons reformater notre script ci-dessus. Faire cela peut être un peu déroutant, alors j'aime suivre un schéma très spécifique. Tout d’abord, supprimez l’indentation et les espaces blancs supplémentaires.

 try dit à l'application "Finder" de définir this_folder sur (la cible de la fenêtre frontale) comme alias: définir this_folder sur POSIX chemin de this_folder

Ensuite, placez chaque ligne dans un guillemet simple et faites-la précéder de -e afin que le script shell puisse analyser les différentes lignes..

 -e 'try' -e 'indique à l'application "Finder"' -e 'que this_folder est défini sur (la cible de la fenêtre avant) comme alias' -e 'et que this_folder est défini sur le chemin POSIX de this_folder' -e '. end tell '-e' end try '-e' définit this_folder sur le chemin POSIX de (chemin d'accès au bureau) '-e' return this_folder '

Enfin, supprimez toutes les coupures de ligne et placez le osascript commande au début.

 osascript -e 'try' -e 'indique à l'application "Finder"' -e 'que this_folder (la cible de la fenêtre avant) est alias' -e 'et que this_folder est défini sur le chemin POSIX de this_folder' -e 'return this_folder' e 'end tell' -e 'end try' -e 'définit this_folder sur le chemin POSIX de (chemin d'accès au bureau)' -e 'return this_folder'

Étape 3. Mélanger le tout ensemble

Pour notre dernière astuce, nous allons utiliser le chemin renvoyé par AppleScript comme point de départ de notre script shell qui crée les fichiers. Pour ce faire, nous devons jeter le résultat du script dans une variable, puis appeler cette variable lorsque nous avons besoin d'un chemin de départ..

Avant d'examiner le script shell terminé, examinons la syntaxe d'attribution de la variable:

 myPath = $ (osascript -e 'AppleScript va ici')

Ici, nous avons créé une variable appelée "myPath", puis nous l'avons définie sur un AppleScript. Puisque ceci retournera un chemin, nous pouvons alors utiliser cette variable à la place d'un chemin.

 cd $ myPath;

C'est tout ce qu'on peut en dire. Maintenant, jetons tout cela dans une commande géante.

 myPath = $ (-e 'essayer' -e 'indiquer à l'application "Finder"' -e 'définir ce dossier à (la cible de la fenêtre avant) comme alias' -e 'définir ce dossier à POSIX chemin de this_folder' -e ' return this_folder '-e' end tell '-e' end try '-e' définit this_folder sur le chemin POSIX de (chemin d'accès au bureau) '-e' return this_folder '); cd $ myPath; mkdir requête; cd requête; touchez index.html style.css script.js

Succès!

La commande devrait maintenant être entièrement fonctionnelle. Collez-le dans Alfred et testez-le en utilisant le même préfixe "nw" qu'auparavant. Le résultat devrait être un nouveau dossier dans la fenêtre actuelle du Finder avec le nom que vous avez transmis en tant que paramètre..


Collez le script terminé dans le champ Commande

Faire votre propre

Si vous avez réussi tout au long de ce didacticiel, félicitations, c’était tout un défi! Vous avez maintenant codé à la main votre première extension Alfred. Grâce à vos nouvelles connaissances sur la combinaison de scripts shell et AppleScripts, vous devriez pouvoir créer vous-même des extensions fantastiques..

Si vous avez des idées pour de nouvelles extensions ou en avez créé vous-même, laissez un commentaire ci-dessous et laissez-nous savoir..