Aggiunta di variabili a un comando shell in Automator

1

Uso Terminal per eseguire un comando. Funziona benissimo dalla riga di comando, ma voglio essere in grado di automatizzarlo con Automator. La sintassi del comando (ovviamente, meno le virgolette) è la seguente:

 spotify-ripper user.name "/path/to/directory" "spotifyURI" 

Ho provato innumerevoli volte a far sì che Automator:

  1. Richiedi elementi finder (per creare il "percorso / su / directory")
  2. Richiedi testo (chiedendomi di passare nel collegamento URI / URL da spotify)
  3. Esegui Shell Script (/ bin / bash)

    spotify-ripper user.name "$@"
    

L'ho provato con "Pass input" a "stdin" o "as arguments". Basta avere un errore. Ho letto che "$ @" passerà entrambe le variabili una dopo l'altra che è proprio quello di cui ho bisogno. Ho anche provato "$ 1" "$ 2" come suggerito da alcuni post. Cosa mi manca? Voglio solo passare informazioni sul percorso e un URL alla fine di un comando della shell, ma niente sembra funzionare. Ho provato le opzioni GET e SET Variable, ma non sembra che sia di aiuto.

Qualcuno ha qualche idea su cosa dovrei fare?

    
posta Mark Monahan 15.03.2017 - 17:44
fonte

1 risposta

1

Ci sono molti modi per risolvere questo problema. Un modo è già descritto nella domanda Variabile di Automator nello script di shell (assicurarsi di abilitare le opzioni precisamente come segue):

  1. Chiedi elementi del Finder (Tipo: cartelle)
  2. Imposta il valore della variabile (variabile [esempio]: percorso della directory)
  3. Richiedi testo (selezionato: ignora l'input di questa azione; selezionato: richiede una risposta)
  4. Imposta il valore della variabile (variabile [esempio]: Spotify-Url)
  5. Ottieni il valore della variabile (Variabile: Percorso della directory; selezionato: Ignora l'input di questa azione)
  6. Ottieni il valore della variabile (variabile: Spotify-Url)
  7. Esegui Shell Script (Passa l'input: come argomenti; Contenuto: export PATH=/usr/local/bin:$PATH ; /path/to/spotify-ripper user.name "$1" "$2" -cambia la parte "/ percorso / a" con il percorso reale di spotify-ripper, ovviamente: probabilmente / usr / local / bin / spotify- ripper)

Un altro modo è usare AppleScript, in un'azione "Esegui AppleScript" in Automator o come applicazione AppleScript salvata in AppleScript Editor. Ecco un esempio in AppleScript:

on run
    try
        set spotifyDialog to display dialog "Enter a Spotify URL:" buttons {"Cancel", "OK"} default button "OK" cancel button "Cancel" default answer "https://" with title "Spotify Ripper"
        if the button returned of spotifyDialog is "OK" then
            set spotifyURL to text returned of spotifyDialog
            choose folder with prompt "Choose a folder:"
            set theDirectory to the result
            do shell script "export PATH=/usr/local/bin:$PATH ; /path/to/spotify-ripper user.name " & quoted form of POSIX path of theDirectory & space & spotifyURL
        end if
    end try
end run
    
risposta data 15.03.2017 - 21:35
fonte

Leggi altre domande sui tag