Automator per eseguire script di shell con un file di testo di input, copiarlo in una directory specifica

2

Sto semplificando la creazione di un file .deb con Automator. Al momento ho uno script di shell che fa alcune semplici azioni -

  1. Chiedi all'utente l'immissione di testo
  2. Esegui l'analisi di alcune directory
  3. Esegui un comando con il testo inserito come variabile
  4. esegui il programma dpkg-deb e l'output sul desktop

Va bene, ma i file .deb devono avere un file di testo "controllo" con alcuni campi compilati e il file deve trovarsi in un percorso specifico, con il file control che risiede in DEBIAN sottodirectory come così

AppName/DEBIAN/control

Quello che vorrei fare è creare il file di controllo e rilasciarlo nel flusso di lavoro di Automator e farlo eseguire lo script con il file di controllo come parametro di input. Avrei bisogno dello script per "copiare questo file in AppName/DEBIAN/ e creare la cartella DEBIAN se non esiste.

Where AppName == A specific line from the control file

Qualcuno può aiutarti?

    
posta Justin 01.08.2013 - 02:57
fonte

1 risposta

2

EDIT: il flusso di lavoro ora funziona con un bug: l'esecuzione del flusso di lavoro due volte comporta due copie del file di controllo che viene copiato

Crea un nuovo SERVIZIO AUTOMATICO. All'inizio, per "riceve selezionato come input" scegli "documenti". Aggiungere il processo "imposta il valore della variabile" e creare una nuova variabile "percorso di destinazione" (il nome della variabile di default è "percorso di destinazione"). Aggiungi il processo "open finder items" all'inizio per aprire il file di controllo. Aggiungere il processo "run applescript" al flusso di lavoro il codice è il seguente:

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

Non so perché questo non possa essere stato nello stesso blocco, ma è necessario aggiungere un processo AppleScript separato. Il codice è il seguente:

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

Aggiungi il processo "imposta il valore della variabile" e crea una nuova variabile di percorso di destinazione (il nome predefinito è "percorso di destinazione 1").
Aggiungi il processo "ottieni valore della variabile" e ottieni il valore della variabile con il percorso del file di input ("percorso di destinazione"). Fai clic su "opzioni" su questo processo e seleziona "ignora l'input di questa azione".
Dopo questo, Automator ha un processo chiamato "copia finder items" e può essere usato per copiare l'input (l'output di "get value of variable", che è il file di input). Questo ha funzionato per me, spero che funzioni anche per te. Buona fortuna:)

    
risposta data 10.11.2013 - 15:06
fonte

Leggi altre domande sui tag