Automator diff Workflow

Ich habe öfter mal das Bedürfnis 2 Dateien zu vergleichen. Das Unix-Tool diff eigenet sich dafür bestens, allerdings ist es aufwändig jedesmal das Terminal zu öffnen und lange Pfade von Hand einzutippen. Da ich schon länger mal was sinnvolles mit Apple's Automator machen wollte, war das hier ein gutes Experiment.

Schon 3 Aktionen reichen um die geforderte Funktionalität zu bieten. Zuerst werden die ausgewählten Finder Objekte abgefragt, dann ein AppleScript ausgeführt und abschließend ein Shell-Skript ausgeführt.

Automator diff Workflow (Klick aufs Bild für eine große Ansicht.)

Listing AppleScript:

on run {input, parameters}
    try
        do shell script "diff -wU3 " &
        POSIX path of ((item 1 of input) as alias) &
        " " &
        POSIX path of ((item 2 of input) as alias) &
        " > /tmp/diff.tmp.diff"
    end try
end run

Listing Shell-Skript:

open -a TextMate /tmp/diff.tmp.diff\
&& sleep 2 && rm -f /tmp/diff.tmp.diff

Das ganze aus dem Automator heraus gesichert als ~/Library/Workflows/Applications/Finder/diff.workflow und schon steht es im Kontext-Menü des Finders zur Verfügung.

Man kann jetzt 2 (oder mehr, es werden jedoch nur die ersten Beiden berücksichtigt) Dateien markieren und aus dem Kontext-Menü unter Automator diff auswählen um danach in seinem Lieblings-Editor (hier: TextMate) die ` diff -Ausgabe zu sehen. TextMate bietet übrigens Syntax-Highlight für diffs.

Automator Workflow herunterladen (4KB)


Kommentare