Agregar variables a un comando de shell en Automator

1

Uso Terminal para ejecutar un comando. Funciona bien desde la línea de comandos, pero quiero poder automatizarlo con Automator. La sintaxis del comando (por supuesto, menos las comillas) es la siguiente:

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

He intentado innumerables veces para que Automator:

  1. Pregunte por los elementos del buscador (para crear el "directorio / ruta / al directorio")
  2. Pedir texto (pidiéndome que pase en el enlace URI / URL de spotify)
  3. Ejecutar script de shell (/ bin / bash)

    spotify-ripper user.name "$@"
    

Lo he intentado con "Pasar entrada" a "stdin" o "como argumentos". Solo recibe un error. He leído que "$ @" pasará ambas variables una tras otra, justo lo que necesito. También he intentado "$ 1" "$ 2" como han sugerido algunas publicaciones. ¿Qué me estoy perdiendo? Solo quiero pasar información de ruta y una URL al final de un comando de shell, pero nada parece funcionar. He probado las opciones GET y SET Variable, pero eso tampoco parece ayudar.

¿Alguien tiene alguna idea de lo que debería estar haciendo?

    
pregunta Mark Monahan 15.03.2017 - 17:44

1 respuesta

1

Hay varias formas de resolver este problema. Una forma ya se describe en la pregunta Automator variable en shell script (asegúrese de habilitar las opciones precisamente de la siguiente manera):

  1. Preguntar por elementos del buscador (tipo: carpetas)
  2. Establecer valor de variable (Variable [ejemplo]: Ruta de directorio)
  3. Solicitar texto (activado: ignorar los comentarios de esta acción; activado: requerir una respuesta)
  4. Establecer valor de variable (Variable [ejemplo]: Spotify-Url)
  5. Obtener valor de la variable (Variable: Ruta de directorio; Comprobado: Ignorar la entrada de esta acción)
  6. Obtener valor de la variable (Variable: Spotify-Url)
  7. Ejecute el script de shell (Pase la entrada: como argumentos; Contenido: export PATH=/usr/local/bin:$PATH ; /path/to/spotify-ripper user.name "$1" "$2" : cambie la parte "/ path / to" con la ruta real para spotify-ripper, por supuesto: probablemente / usr / local / bin / spotify- destripador)

Otra forma es usar AppleScript, ya sea en una acción "Ejecutar AppleScript" en Automator o como una aplicación AppleScript guardada en AppleScript Editor. Aquí hay un ejemplo en 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
    
respondido por el Big Mac 15.03.2017 - 21:35

Lea otras preguntas en las etiquetas