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.