Automator para ejecutar un script de shell con un archivo de texto de entrada, cópielo en un directorio específico

2

Estoy simplificando la creación de un archivo .deb con Automator. Actualmente tengo un script de shell que realiza algunas acciones simples -

  1. Pregunte al usuario por el ingreso de texto
  2. Hacer algún análisis de directorio
  3. Ejecute un comando con la entrada de texto como variable
  4. ejecutar el programa dpkg-deb y enviarlo al escritorio

Todo está bien, pero los archivos .deb deben tener un archivo de texto de "control" con algunos campos rellenos, y el archivo debe estar en una ruta específica, con el archivo control que reside en un DEBIAN subdirectorio como tal

AppName/DEBIAN/control

Lo que me gustaría hacer es crear el archivo de control, soltarlo en el flujo de trabajo de Automator y hacer que ejecute el script con el archivo de control como parámetro de entrada. Necesitaría la secuencia de comandos para "copiar este archivo en AppName/DEBIAN/ y crear la carpeta DEBIAN si no existe.

Where AppName == A specific line from the control file

¿Alguien puede ayudar?

    
pregunta Justin 01.08.2013 - 02:57

1 respuesta

2

EDITAR: el flujo de trabajo ahora funciona con un error: al ejecutar el flujo de trabajo dos veces, se copian dos copias del archivo de control

Hacer un nuevo servicio de Automator. Al principio, para "recibe seleccionado como entrada" elija "documentos". Agregue el proceso "establecer el valor de la variable" y cree una nueva variable "ruta de destino" (el nombre predeterminado de la variable es "ruta de destino"). Agregue el proceso "abrir elementos del buscador" al principio para abrir el archivo de control. Agregue el proceso "ejecute applecript" al flujo de trabajo, el código es el siguiente:

on run {input, parameters}

set LineNumber to (the line in which the path is specified in the control file)
tell application "TextEdit"
    set theVariable to paragraph LineNumber of document 1
    set thePath to POSIX path of theVariable
    set thePath to text 1 thru -2 of thePath
end tell

return thePath
end run

No sé por qué esto no pudo haber estado en el mismo bloque, pero es necesario agregar un proceso AppleScript por separado. El código es el siguiente:

on run {input, parameters}

tell application "Finder"
    set theFolder to POSIX path of input & "/DEBIAN"
    try
        make new folder in folder input with properties {name:"DEBIAN"}
    end try
end tell

return theFolder
end run

Agregue el proceso "establecer valor de variable" y cree una nueva variable de ruta de destino (el nombre predeterminado es "ruta de destino 1").
Agregue el proceso "obtener valor de la variable" y obtenga el valor de la variable con la ruta del archivo de entrada ("ruta de destino"). Haga clic en "opciones" en este proceso y marque "ignorar la entrada de esta acción".
Después de esto, Automator tiene un proceso llamado "elementos del buscador de copia" y se puede usar para copiar la entrada (la salida de "obtener el valor de la variable", que es el archivo de entrada). Esto me funcionó, espero que también te funcione a ti. Buena suerte :)

    
respondido por el Arc676 10.11.2013 - 15:06

Lea otras preguntas en las etiquetas