Escribe una extensión Alfred para crear archivos sobre la marcha

Recientemente, echamos un vistazo a cómo usar Terminal para crear archivos rápidamente. Hoy, vamos a revisar y aplicar este conocimiento para hacer nuestra propia extensión Alfred que crea un nuevo directorio de archivos en un instante. A lo largo del camino, incluso utilizaremos algo de AppleScript para que realmente puedas obtener tu dosis de bondad geek..


Lo que estamos construyendo

Como desarrollador, cada vez que comienzo un nuevo proyecto, normalmente ejecuto el mismo proceso. Primero, tengo que crear una carpeta y luego nombrarla. Luego tengo que abrir un editor de texto y crear individualmente cada archivo que quiero incluir (index.html, style.css, etc.).

Obviamente, esto es un dolor, así que he intentado un montón de cosas para evitarlo. Intenté mantener a mano un proyecto en blanco que solo puedo arrastrar y copiar, usando Terminal para crear los archivos manualmente, el trabajo.

Sin embargo, mi método favorito actual es llamar a Alfred, escribir el nombre de la carpeta que quiero crear y pulsar Regreso. ¡Eso es! Todos los demás pasos están completamente automatizados, lo que me ahorra mucho tiempo en una semana determinada.

Obviamente, esta funcionalidad no viene con Alfred fuera de la caja, así que tendremos que integrarla. Afortunadamente, hacerlo es bastante simple.!

Propina: Este tutorial no es solo para desarrolladores. Síguelo y modifícalo para crear archivos de cualquier tipo.!


Tarea de la terminal

Como mencioné en la introducción, he cubierto los conceptos básicos de la creación de archivos de Terminal Server en un artículo anterior, pero vale la pena volver a mencionarlos aquí para que todos estemos en la misma página..

Hay tres comandos básicos de shell script que usaremos hoy: cd, mkdir y touch. Veamos cómo funciona cada uno..

Cambiando su directorio

De forma predeterminada, cuando abre Terminal, debe comenzar en la carpeta de inicio de su Mac. Esto servirá como punto de partida para cualquier comando que requiera una ubicación. Si desea cambiar esa ubicación, use la discos compactos mando.

cd desktop /

Esto le indica a la Terminal que desea cambiar el directorio actual a "Escritorio". Más adelante, cuando hagamos esto de Alfred, tendremos que ser un poco más específicos:

/ Usuarios / MacBookPrime / Desktop

Aquí he incluido la ruta completa a mi carpeta de escritorio. Es extremadamente importante que personalice este fragmento en particular para su propia máquina. Para hacer eso, reemplaza mi nombre de usuario con el tuyo. Introduzca su nombre de usuario entre "Usuarios /" y "Escritorio /" en el fragmento de código a continuación:

/ Users / YourUserNameGoesHere / Desktop

Haciendo un nuevo directorio

Una vez que cambiemos los directorios, necesitaremos crear un nuevo directorio (carpeta). Para ello, utilizamos el mkdir mando.

mkdir mySite

Esto creará una nueva carpeta llamada "mySite" en el directorio actual. En nuestro caso, este será el escritorio..

Hacer un nuevo archivo

Ahora viene la mejor parte: cómo crear un nuevo archivo. Por el motivo que sea, me parece una tontería que tenga que abrir una aplicación para crear un archivo. Debería poder eliminar archivos vacíos, con cualquier extensión que yo quiera, simplemente a voluntad. Con el toque comando, podemos hacer exactamente eso:

toque textFile.txt

Esto creará un nuevo archivo de texto sin formato en el directorio actual con el nombre "textFile.txt". Fácil a la derecha?

Ponlo todo junto

Ahora tenemos todo el conocimiento que necesitamos para llevar a cabo nuestro script de shell. Esto es lo que parece cuando combinamos estos comandos (desplácese hacia la derecha para ver un fragmento completo).

cd / Users / MacBookPrime / Desktop; mkdir mySite; cd mySite; toque index.html style.css script.js

Observe que los diferentes comandos están separados por un punto y coma y que los comandos táctiles se pueden encadenar usando solo un espacio entre los distintos nombres de archivo.

Creando una extensión Alfred

Ahora que hemos resuelto nuestro script de shell básico, es el momento de crear la extensión Alfred. Afortunadamente, no necesitamos herramientas especiales de desarrollo para esto, ¡solo Alfred! Sin embargo, necesitarás el Powerpack, que es la versión premium de Alfred.

Paso 1. Crear una nueva extensión

Para comenzar, encienda Alfred y haga clic en el pequeño engranaje en la parte superior derecha para abrir las Preferencias. Desde aquí, haga clic en la pestaña "Extensiones". Puede que tengas o no algunas extensiones de terceros ya disponibles aquí..


Haga clic en la pestaña Extensiones

Desde la pestaña Extensiones, haga clic en el pequeño botón más en la parte inferior izquierda de la ventana. Debería aparecer un menú de los distintos tipos de extensiones que puede crear:


Elija "Shell Script"

Desde aquí, elige "Shell Script". No se preocupe si no tiene idea de cómo escribir un script de shell, ya escribimos uno arriba.!

Paso 2. Nombre y otros detalles

Cuando crea una nueva extensión, puede darle un nombre e insertar su información en caso de que la vaya a distribuir. De esta manera la gente puede ver de quien es.


Ingrese la información de crédito y presione Guardar

Además, puede personalizar el icono. Creo que el icono de Terminal está bien para nuestros propósitos, pero puedes arrastrar tu propia imagen..

Paso 3. Ingrese los detalles de Alfred

A continuación, deberá ingresar el título, la descripción y la palabra clave de la extensión..


Ingrese los detalles de Alfred aquí

Esto puede parecer un poco redundante con la ventana anterior pero no lo es. La pantalla anterior era solo para fines de crédito, esto determina qué información Alfred realmente muestra cuando accede a la extensión.


Alfred muestra los detalles que ingresaste cuando llamaste a la extensión

Observe que configuro "nw" como acceso directo, de modo que cuando escribo esto en Alfred, la primera opción que aparece muestra el título y la descripción que ingresé.

Etapa 4. Ingrese el Script

Ahora es el momento de ingresar los comandos de shell que escribimos antes, con una pequeña personalización. Aquí está el fragmento de antes:

cd / Users / MacBookPrime / Desktop; mkdir mySite; cd mySite; toque index.html style.css script.js

Ahora, en lugar de hacer una carpeta llamada "mySite" cada vez, usemos el texto que el usuario ingresa en Alfred. Hacemos esto reemplazando mi sitio con consulta.

 cd / Users / MacBookPrime / Desktop; mkdir consulta; cd consulta; toque index.html style.css script.js

Esta configuración requiere la entrada del usuario, así que asegúrese de establecer la configuración de "Parámetro" en "Parámetro requerido". Además, no olvides personalizar la ruta a tu escritorio..


Ingrese el script en el campo Comando

Una vez que hayas terminado con ese paso, pulsa el botón Guardar. ¡Eso es! Estas todo terminado.

Probar la extensión

Para asegurarse de que todo funcionó correctamente, salga de la ventana de Preferencias y vuelva a iniciar Alfred. Escriba "nw" para el acceso directo, seguido del nombre de la carpeta que desea crear.


Probando la nueva extensión.

El resultado de la extensión debe ser una carpeta con el nombre que eligió lleno de los archivos que creó con el toque mando.


El resultado de la extensión

Si funciona, entonces has terminado. Los siguientes pasos son completamente opcionales. Si estás listo para un desafío, procede!

Avanzado: Haz que funcione en cualquier carpeta

El método anterior siempre crea una nueva carpeta en su escritorio. En verdad, así es como trabaja mucha gente, pero nunca recomiendo prácticas tan desordenadas. Soy un gran defensor de mantener limpio tu escritorio, así que me propuse mejorar el script.

Lo que queremos hacer es consultar el Buscador y capturar la ruta de la ventana frontal. Si no existe una ventana, deberíamos predeterminar al escritorio. Luego, más tarde, cuando creamos los archivos, usaremos la ruta desde el primer paso. En la práctica, podrá navegar a una carpeta en su unidad, luego ejecutar la extensión Alfred y crear rápidamente un nuevo directorio lleno de archivos.

Paso 1. AppleScript al rescate

Obviamente, la parte difícil aquí es obtener un script de shell para descubrir automáticamente la ventana del Finder más avanzada en un momento dado. Como resultado, la forma más fácil que conozco para inspeccionar una ventana del Finder es AppleScript. Para puntos de doble nerd, puedes envolver un AppleScript en un script de shell y viceversa.

El script que necesitamos tendrá algunos pasos básicos:

  1. Trate de obtener la ruta de acceso de la ventana del buscador frontal
  2. Si el intento tiene éxito, devuelve la ruta de esa ventana
  3. Si el intento falla (no existe una ventana del Finder), devuelva la ruta del escritorio

Un aumento de velocidad que nos encontramos en este viaje es que, de forma predeterminada, AppleScript utiliza un formato diferente para las rutas de archivo que los scripts de shell. En lugar de la barra inclinada a la que probablemente esté acostumbrado (Usuarios / Nombre de usuario / Escritorio), AppleScript usa dos puntos para separar los directorios (Usuarios: Nombre de usuario: Escritorio).

Esto es bastante fácil de manejar sin embargo. Solo debemos asegurarnos de hacer referencia a la ruta POSIX en nuestro script. Así es como se ve el producto terminado.

[applecript]
tratar
decirle a la aplicación "Finder"
establece this_folder en (el objetivo de la ventana frontal) como alias
establecer this_folder en la ruta POSIX de this_folder
devolver esta carpeta
decirle al final
prueba final

establecer this_folder en la ruta POSIX de (ruta al escritorio)
devolver esta carpeta
[/ applecript]

Como puede ver, simplemente recorrimos cada uno de los pasos que describimos anteriormente. El resultado de este script siempre será una ruta de archivo. En los siguientes pasos, veremos cómo usar esa ruta en nuestro script de shell.

Paso 2. Reformateo del Script

Nuestra siguiente tarea es incrustar el AppleScript que acabamos de escribir en nuestro script de shell. Para ello, utilizamos la siguiente sintaxis:

 osascript -e 'AppleScript va aquí'

Como puede ver, usamos "osascript" para comenzar a integrar AppleScript. La siguiente pieza, "-e" se usa para separar diferentes líneas, cada una encerrada entre comillas simples. Entonces, si quisiéramos incrustar varias líneas de AppleScript, se vería así:

 osascript -e 'tell aplicación "Finder"' -e 'active' -e 'end tell'

Este es un script de tres líneas muy básico dividido por -e interruptores. Con este conocimiento en mente, necesitamos reformatear nuestro script arriba. Hacer esto puede ser un poco confuso, así que me gusta seguir un patrón muy específico. Primero, quita la muesca y los espacios en blanco adicionales.

 intente decirle a la aplicación "Finder" establecer this_folder en (el objetivo de la ventana frontal) como alias establecer this_folder en la ruta POSIX de this_folder devolver this_folder end tell end intentar configurar this_folder en la ruta POSIX de (ruta al escritorio) return this_folder

A continuación, ajuste cada línea en una comilla simple y precórtela con -e para que el script de shell pueda analizar las diferentes líneas.

 -e 'try' -e 'le dice a la aplicación "Finder"' -e 'establece this_folder en (el objetivo de la ventana frontal) como alias' -e 'establece this_folder en la ruta POSIX de this_folder' -e 'devuelve this_folder' -e ' end tell '-e' end try '-e' establece this_folder en la ruta POSIX de (ruta al escritorio) '-e' return this_folder '

Finalmente, quite todos los saltos de línea y coloque el osascript comando al principio.

 osascript -e 'try' -e 'le dice a la aplicación "Finder"' -e 'establece this_folder en (el objetivo de la ventana frontal) como alias' -e 'establece this_folder en la ruta POSIX de this_folder' -e 'return this_folder' - e 'end tell' -e 'end try' -e 'establece this_folder en la ruta POSIX de (ruta al escritorio)' -e 'return this_folder'

Paso 3. Tirarlo todo junto

Para nuestro truco final, vamos a utilizar la ruta de acceso de AppleScript como punto de partida para nuestro script de shell que crea los archivos. Para hacer esto, debemos lanzar el resultado del script a una variable, luego llamar a esa variable cuando necesitamos una ruta de inicio.

Antes de ver el script de shell completado, veamos la sintaxis para asignar la variable:

 myPath = $ (osascript -e 'AppleScript va aquí')

Aquí creamos una variable llamada "myPath" y luego la configuramos en un AppleScript. Como esto devolverá una ruta, entonces podemos usar esta variable en lugar de una ruta.

 cd $ myPath;

Eso es todo al respecto. Ahora vamos a juntar todas estas cosas juntas en un comando gigante.

 myPath = $ (osascript -e 'try' -e 'le dice a la aplicación "Finder"' -e 'establece this_folder en (el destino de la ventana frontal) como alias' -e 'establece this_folder en la ruta POSIX de this_folder' -e ' devuelva this_folder '-e' end tell '-e' end try '-e' configure this_folder en la ruta POSIX de (ruta al escritorio) '-e' return this_folder '); cd $ myPath; mkdir consulta; cd consulta; toque index.html style.css script.js

Éxito!

El comando ahora debería ser completamente funcional. Péguelo en Alfred y pruébelo usando el mismo prefijo "nw" que antes. El resultado debe ser una nueva carpeta en su ventana actual del Finder con el nombre que pasó como parámetro.


Pegue el script terminado en el campo Comando

Haz lo tuyo

Si lo superaste todo en este tutorial, ¡felicidades, ese fue el desafío! Ahora has codificado a mano tu primera extensión de Alfred. Con su nuevo conocimiento sobre la combinación de scripts de shell y AppleScripts, debería poder crear algunas extensiones fantásticas por su cuenta..

Si tiene alguna idea para nuevas extensiones o ha creado algunas por su cuenta, deje un comentario a continuación y avísenos..