Uruchom skrypt przy zmianie pliku w Mac OS X.


8

Czy ktoś wie o programie dla systemu Mac OS, który może przekazać nazwę do pliku wykonywalnego i pliku do obejrzenia, aby następnie uruchamiał plik wykonywalny przy każdej zmianie oglądanego pliku?

Mam na myśli coś takiego:

$ fwatch /Users/foo/doc.tex /Users/foo/run-pdflatex.sh &
  fwatch running. Listening for changes in /Users/foo/doc.tex.
$ echo "This aint no LaTeX" > doc.tex
$ fwatch: Change in /Users/foo/doc.tex detected. Running /Users/foo/run-pdflatex.sh...

Odpowiedzi:


6

Możesz to skonfigurować za pomocą uruchomionego . W szczególności należy użyć klucza ścieżek śledzenia w uruchomionej liście, aby wyszukać zmiany w tym pliku.

Wyczerpujące informacje dostępne w tym artykule AFP548 .

Chociaż wydaje się, że nie jest już w fazie rozwoju, Lingon jest aplikacją zapewniającą GUI do skonfigurowania uruchomionych plików plist.

EDYTOWAĆ:

Z grubsza, oto, co zrobiłbyś przy użyciu przykładowych ścieżek powyżej. Zapisz plik o com.superuser.run-pdflatex.plistnastępującej treści do~/Library/LaunchAgents

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
    <string>com.superuser.run-pdflatex</string>
    <key>OnDemand</key>
    <true/>
    <key>Program</key>
    <string>/Users/foo/run-pdflatex.sh</string>
    <key>ProgramArguments</key>
    <array>
            <string>run-pdflatex.sh</string>
    </array>
    <key>WatchPaths</key>
    <array>
            <string>/Users/foo/doc.tex</string>
    </array>
    </dict>
</plist>

Następnie wpisz launchctl load ~/Library/LaunchAgents/com.superuser.run-pdflatex.plistterminal, aby załadować demona obserwującego pliki.

Powyżej jest niesprawdzony, ale taki jest ogólny pomysł.


2

Możesz to zrobić w Automatorze. Uważam, że jest to opcja folderów w przepływie pracy automatyzatora (nie przed komputerem Mac). Następnie wystarczy dołączyć skrypt do folderu i będzie on uruchamiany przy każdym dodaniu / zmianie pliku.


Nie mogę do końca nadążyć. Jestem nowy w Automatorze, ale o ile wiem, nie możesz wybrać, kiedy wykonać skrypt, ale tylko, co zrobić, gdy jest uruchomiony. W systemie Mac OS są akcje folderów, których mógłbym również użyć, ale pomyślałem, że AppleScript ma tylko akcję „dodawania elementów folderów do”, ale nic takiego jak „zmienianie elementów folderów w”.
— Johannes

Masz rację @Johannes. Chociaż istnieją czynności folderów służące do dodawania elementów folderów, usuwania elementów folderów, przenoszenia okna folderów, zamykania okna folderów i otwierania folderu, nie ma akcji folderów służącej do wykrywania zmian w plikach. Możesz to zobaczyć, otwierając słownik StandardAdditions.osax w edytorze Applescript.
— ghoppe
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.