Automator Shell-Skript mit einer Eingabetextdatei ausführen, kopieren Sie es in ein bestimmtes Verzeichnis

Ich vereinfache das Erstellen einer .deb-Datei mit Automator. Ich habe derzeit ein Shell-Skript, das einige einfache Aktionen ausführt -

  1. Bitten Sie den Benutzer um Texteingabe
  2. Führen Sie eine Verzeichnisanalyse durch
  3. Führen Sie einen Befehl mit der Texteingabe als Variable aus
  4. Führen Sie das Programm dpkg-deb aus und geben Sie es auf dem Desktop aus

Das ist alles schön und gut, aber .deb-Dateien müssen eine "Kontroll"-Textdatei mit einigen ausgefüllten Feldern haben, und die Datei muss sich in einem bestimmten Pfad befinden, wobei sich die Datei in einem Unterverzeichnis wie controldiesem DEBIANbefindet

AppName/DEBIAN/control

Ich möchte die Steuerdatei erstellen, sie im Automator-Workflow ablegen und das Skript mit der Steuerdatei als Eingabeparameter ausführen lassen. Ich würde das Skript benötigen, um "diese Datei zu kopieren AppName/DEBIAN/und den DEBIANOrdner zu erstellen, wenn er nicht existiert.

Where AppName == A specific line from the control file

Kann jemand helfen?

Dies wäre mit einem Shell-Skript (mit dem Sie anscheinend vertraut sind), das Sie von Automator aus aufrufen, recht einfach, was zu der Frage führt, warum es überhaupt ein Automator-Workflow sein muss.
Weil ich den Workflow als Symbol auf dem Desktop haben möchte und dann einfach die beschriebene controlDatei per Drag & Drop darauf ziehen möchte, um den Workflow zu starten, muss ich also nichts im Terminal eingeben :-)

Antworten (1)

BEARBEITEN: Der Workflow funktioniert jetzt mit einem Fehler: Das zweimalige Ausführen des Workflows führt dazu, dass zwei Kopien der Steuerdatei kopiert werden

Erstellen Sie einen neuen Automator-DIENST. Wählen Sie zu Beginn bei „als Eingabe ausgewählte Empfänge“ „Dokumente“. Fügen Sie den Prozess „Variablenwert festlegen“ hinzu und erstellen Sie eine neue „Zielpfad“-Variable (der standardmäßige Variablenname ist „Zielpfad“). Fügen Sie den Prozess "open finder items" am Anfang hinzu, um die Steuerdatei zu öffnen. Fügen Sie dem Workflow den Prozess „run applescript“ hinzu. Der Code lautet wie folgt:

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

Ich weiß nicht, warum dies nicht im selben Block sein konnte, aber Sie müssen einen separaten AppleScript-Prozess hinzufügen. Der Code lautet wie folgt:

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

Fügen Sie den Prozess „Variablenwert festlegen“ hinzu und erstellen Sie eine neue Zielpfadvariable (Standardname ist „Zielpfad 1“).
Fügen Sie den Prozess "Variablenwert abrufen" hinzu und erhalten Sie den Wert der Variablen mit dem Pfad der Eingabedatei ("Zielpfad"). Klicken Sie in diesem Prozess auf „Optionen“ und aktivieren Sie „Eingabe dieser Aktion ignorieren“.
Danach verfügt Automator über einen Prozess namens "Suchelemente kopieren", mit dem die Eingabe kopiert werden kann (die Ausgabe von "Variablenwert abrufen", die die Eingabedatei darstellt). Das hat bei mir funktioniert, hoffe es funktioniert auch bei dir. Viel Glück :)