5 votos

¿Cómo puedo ejecutar un conjunto de comandos de terminal con un solo clic?

Así que tengo esto programa que utilizo para ver películas en mi Apple TV que se ejecuta desde mi Mac en Terminal y va a la TV. Bueno cada vez que quieras arrancar el servidor tienes que ejecutar una serie de comandos en Terminal.

$ cd Desktop
$ cd PopcornTV
$ sudo npm install
$ sudo node atv.js

Estos comandos inician el servidor al que se conecta mi Apple TV. ¿Hay alguna manera de hacer una aplicación de Automator o algo de ese tipo que se ejecutará estos comandos para mí cuando hago clic en un botón.

4voto

Schwertspize Puntos 91

Ejecutarlo en un script de apple no es tan malo. sólo tienes que ejecutar todo el script como Root porque sudo requiere la interacción del usuario. si haces un script de apple como éste:

do shell script "cd ~/Desktop/PopcornTV && /path/to/npm install && /path/to/node atv.js" with administrator privileges 

reemplazar entonces /path/to/npm y /path/to/node con la salida de which npm y which node

se abrirá un diálogo y te pedirá tu contraseña.

3voto

forquare Puntos 841

Una solución sin usar Automator:

1. Reunir algunos detalles:

  • ¿Cuál es el camino para npm ? Averígualo con which npm en Terminal.app
  • ¿Cuál es el camino para node ? Averígualo con which node en Terminal.app
  • ¿Cuál es su nombre de usuario? Encuentre usando whoami en Terminal.app

Todo esto es importante, tome nota de los resultados.

2. Configuración de sudo

Configuremos ahora sudo para no requerir el uso de una contraseña para esos dos comandos.

En Terminal.app, introduzca lo siguiente:

sudo visudo

Tendrás que introducir tu contraseña, aunque no verás ningún tipo de escritura mientras la introduces. Pulse enter cuando hayas terminado de introducir tu contraseña.

Esto abrirá el /etc/sudoers para usted (probablemente en vi/vim) pulse shift + g para ir al fondo del archivo, luego presione o para insertar una nueva línea y comenzar a insertar texto, introduzca lo siguiente:

# Allow me to use npm and node without password
username ALL = NOPASSWD: /path/to/npm /path/to/node

Deberá reemplazar "username", "/path/to/npm" y "/path/to/node" con los datos que reunió en la sección 1 .

Cuando haya terminado de introducir estos datos, guarde y salga pulsando esc y a continuación, introduciendo :x y luego pulsar enter .

3. Envolverlo en un archivo

Vamos a crear un archivo para poner esos comandos. En Terminal.app introduce lo siguiente:

echo '#!/bin/bash
cd /Users/username/Desktop/PopcornTV
sudo /path/to/npm install
sudo /path/to/node atv.js' > ~/Desktop/startPopcornTV.command

chmod 740 ~/Desktop/startPopcornTV.command

De nuevo, tendrás que sustituir "username", "/path/to/npm" y "/path/to/node" por los datos que has recogido en la sección 1 .

4. Correr

En su Escritorio tendrá ahora un archivo llamado startPopcornTV.command (dependiendo de su configuración podría llamarse simplemente startPopcornTV ).

Todo lo que necesitas hacer ahora es hacer doble clic en ese archivo y se iniciará PopcornTV por ti.

1voto

DisplayName Puntos 751

Abrir el editor de Applescript

añade esto:

do shell script "cd ~/Desktop/PopcornTV && /usr/local/bin/npm install && /usr/local/bin/node atv.js" with administrator privileges

Guárdalo como una aplicación. Sólo tienes que abrirla cuando quieras ejecutarla.

1voto

Hamza OBEIDAT Puntos 137

Creo que esto debería funcionar:

echo "#\n cd Desktop \n cd PopcornTV \n sudo npm install \n sudo node atv.js" >> ~/Desktop/startMyServer.command

a continuación, haga que el archivo de comandos sea ejecutable

chmod +x ~/Desktop/startMyServer.command

encontrará el archivo startMyServer.command en su escritorio

0voto

basmeyer Puntos 17

Por favor... ¡¡¡Usa la bonita herramienta Automator!!! ¡Por el amor de Dios, no vino con MacOS para nada!

Así que, independientemente de los comandos de la Terminal que quieras ejecutar, haz lo siguiente:

  1. Inicie Automator (que se encuentra en su carpeta de aplicaciones)
  2. Elija Aplicación como tipo y confirme haciendo clic en
  3. En las Acciones, seleccione Utilidades y haga doble clic o arrastre Ejecutar Shell script al panel derecho
  4. Copie/pegue o introduzca los comandos de la Terminal en el espacio en blanco de la ventana, puede dejar todos los valores desplegables por defecto
  5. Pruebe si esto es lo que quiere con el botón Ejecutar (símbolo de reproducción)
  6. Vaya a Archivo > Guardar... y elija una ubicación específica para guardar el Automator script, dándole un nombre reconocible
  7. Crear un alias para ponerlo en el escritorio
  8. Hecho

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X