Come posso eseguire un set di comandi del terminale usando un clic?

4

Quindi ho questo programma che utilizzo per guardare film sulla mia Apple TV che viene eseguito dal mio Mac in Terminal e va in TV. Bene ogni volta che vuoi avviare il server devi eseguire una serie di comandi nel Terminale.

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

Questi comandi avviano il server su cui è collegata la mia Apple TV. È comunque possibile creare un'applicazione di automazione o qualcosa del genere che eseguirà questi comandi per me quando faccio clic su un pulsante.

    
posta Ilya Vorobyev 06.09.2015 - 19:26
fonte

4 risposte

3

L'esecuzione 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 

sostituisci /path/to/npm e /path/to/node con l'output di which npm e which node

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

    
risposta data 06.09.2015 - 22:54
fonte
1

Una soluzione senza usare Automator:

1. Raccolta di alcuni dettagli:

  • Qual è il percorso verso npm ? Scopri utilizzando which npm in Terminal.app
  • Qual è il percorso verso node ? Scopri utilizzando which node in Terminal.app
  • Qual è il tuo nome utente? Trova utilizzando whoami in Terminal.app

Tutto ciò è importante, prendi nota delle uscite.

2. Configurazione di sudo

Ora configuriamo sudo per non richiedere l'utilizzo di una password per questi due comandi.

In Terminal.app, inserisci quanto segue:

sudo visudo

Dovrai inserire la tua password, anche se non vedrai alcuna digitazione mentre la inserisci. Premi inserisci dopo aver inserito la tua password.

Questo aprirà il file /etc/sudoers per te (probabilmente in vi / vim) premi shift + g per andare alla fine del file, quindi premi < kbd> o per 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 "username", "/ path / to / npm" e "/ path / to / node" con i dettagli raccolti nella sezione 1 .

Quando hai finito di inserire questi dettagli, salva e chiudi premendo esc , quindi inserendo :x e premendo inserisci .

3. Avvolgendolo in un file

Creiamo un file per inserire quei 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

Anche in questo caso dovrai sostituire "username", "/ path / to / npm" e "/ path / to / node" con i dettagli raccolti nella sezione 1 .

4. Esecuzione

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

Tutto quello che devi fare ora è fare doppio clic su quel file e inizierà PopcornTV per te.

    
risposta data 07.09.2015 - 18:13
fonte
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 rendi eseguibile il file di comando

chmod +x ~/Desktop/startMyServer.command

troverai quindi il file startMyServer.command sul desktop

    
risposta data 07.09.2015 - 12:06
fonte
0

Apri Editor di Applescript

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. Basta aprirlo quando vuoi correre.

    
risposta data 06.09.2015 - 20:00
fonte

Leggi altre domande sui tag