Come posso eseguire una serie di comandi del terminale usando un clic?


5

Quindi ho questo programma che uso per guardare film sulla mia Apple TV che gira dal mio Mac in Terminal e va in TV. Bene, ogni volta che vuoi avviare il server devi eseguire un set di comandi in Terminal.

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

Questi comandi avviano il server al quale si collega anche la mia Apple TV. È comunque possibile creare un'applicazione per automatori o qualcosa del genere che eseguirà questi comandi per me quando faccio clic su un pulsante.


4
Sicuramente l'installazione di npm non deve essere eseguita più di una volta
Segna il

Risposte:


3

Eseguirlo in uno script Apple non è poi così male. devi solo eseguire l'intero script come root perché sudo richiede l'interazione dell'utente. se fai uno script apple come questo:

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

sostituire quindi /path/to/npme /path/to/nodecon l'output di which npmewhich node

aprirà un dialogo e ti chiederà la tua password.


errore "/ bin / sh: npm: comando non trovato" numero 127 i.imgur.com/YqDlueN.png
Ilya Vorobyev

quindi dovresti chiamare npm con il percorso completo come / path / to / npm (stesso nel nodo)
Schwertspize

Come posso chiamare un percorso, come dove devo aggiungere il percorso? Mi dispiace se sto facendo domande stupide, sono un po 'nuovo per questo. Ecco il percorso per farlo / usr / local / lib / node_modules i.imgur.com/RIFH1bF.png
Ilya Vorobyev

se chiamate which npml'output sarà qualcosa del genere /usr/local/bin/npm(non vero per quanto ne so, ma come esempio). se chiami npmquesto comando viene eseguito, ma nello script devi chiamare questo comando con /usr/local/bin/npminvece di solo npm(questi percorsi erano solo un esempio, non posso provarlo proprio ora)
Schwertspize

1

Una soluzione senza utilizzare Automator:

1. Raccolta di alcuni dettagli:

  • Qual è il percorso verso npm? Scoprilo usando which npmin Terminal.app
  • Qual è il percorso verso node? Scoprilo usando which nodein Terminal.app
  • Qual è il tuo nome utente? Trova utilizzando whoamiin Terminal.app

Tutto ciò è importante, prendere nota delle uscite.

2. Configurazione sudo

Configuriamo ora sudoper non richiedere l'utilizzo di una password per questi due comandi.

In Terminal.app, immettere quanto segue:

sudo visudo

Dovrai inserire la tua password, anche se non visualizzerai alcuna digitazione mentre la inserisci. Premi enterquando hai completato l'inserimento della password.

Questo aprirà il /etc/sudoersfile per te (probabilmente in vi / vim) premi shift+ gper andare alla fine del file, quindi premi oper inserire una nuova riga e iniziare a inserire il testo, inserisci quanto segue:

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

Dovrai sostituire "nome utente", "/ percorso / a / npm" e "/ percorso / a / nodo" con i dettagli raccolti nella sezione 1 .

Dopo aver inserito questi dettagli, salvare ed uscire premendo, escquindi inserendo :xe premendo enter.

3. Avvolgendolo in un file

Creiamo un file per inserire questi comandi. In Terminal.app inserisci quanto segue:

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

Ancora una volta, dovrai sostituire "nome utente", "/ percorso / a / npm" e "/ percorso / a / nodo" con i dettagli raccolti nella sezione 1 .

4. In esecuzione

Sul desktop ora avrai un file chiamato startPopcornTV.command(a seconda delle tue impostazioni potrebbe essere chiamato startPopcornTV).

Tutto quello che devi fare ora è fare doppio clic sul file e avvierà PopcornTV per te.


0

Penso che dovrebbe funzionare:

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

quindi rendere eseguibile il file di comando

chmod +x ~/Desktop/startMyServer.command

troverai quindi il file startMyServer.commandsul desktop


0

Apri Applescript-Editor

Aggiungi questo:

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

Salva come applicazione. Aprilo quando vuoi correre.


Mi dispiace non ha funzionato. i.imgur.com/WcfvwVp.png
Ilya Vorobyev

Dovrai aggiungere "con i privilegi di amministratore" alla fine della riga AppleScript.
At0mic,

errore "/ bin / sh: npm: comando non trovato" screenshot
Ilya Vorobyev

@IlyaVorobyev Dov'è "npm"? Potresti aprire il terminale e digitare whereis npm; whereis node? Pubblica il risultato.
DisplayName

@DisplayName tra l'altro, che non è dove ....
Schwertspize
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.