Запустіть сценарій щодо зміни файлів на Mac OS X


8

Хтось знає про програму для Mac OS, що ви можете передавати ім'я виконуваному файлу та файлу для перегляду, щоб він потім запускав виконуваний файл кожного разу, коли змінився файл, який переглядали?

Я маю на увазі щось подібне:

$ 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...

Відповіді:


6

Ви можете налаштувати це за допомогою запуску . Зокрема, вам потрібно скористатися клавішею стежок у вашому запущеному списку, щоб шукати зміни у цьому файлі.

Вичерпна інформація в цій статті AFP548 .

Хоча, здається, він більше не розробляється, Lingon - це додаток, що забезпечує спосіб графічного інтерфейсу для налаштування цих запущених файлів-плістів.

Редагувати:

Орієнтовно, ось що ви зробили, використовуючи наведені вище зразки контурів. Збережіть файл, названий com.superuser.run-pdflatex.plistіз таким вмістом, у~/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>

Тоді ви введете launchctl load ~/Library/LaunchAgents/com.superuser.run-pdflatex.plistтермінал для завантаження демон-переглядача файлів.

Вище неперевірено, але це загальна ідея.


2

Ви можете це зробити в Automator. Я вважаю, що він знаходиться під опцією Folder Option в робочому процесі автоматизатора (не перед Mac). Потім ви просто приєднаєте скрипт до папки, і він запускатиметься кожного разу, коли файл додається / змінюється.


Я не можу зовсім слідувати. Я новачок у Automator, але, наскільки я знаю, ви не можете вибрати, коли виконати свій скрипт, а лише що робити, коли він запущений. У Mac OS є дії з папками, які я також міг би використовувати, але я зрозумів, що AppleScript має лише дії "додавання елементів папки до", але нічого подібного до "зміни елементів папки в".
Йоганнес

Ви маєте рацію @Johannes. Незважаючи на те, що існують дії папок для додавання елементів папки, видалення елементів папок, переміщення вікна папки, закриття вікна папки та відкриття папки, немає дії папки для виявлення змін у файлах. Це можна побачити, відкривши словник StandardAdditions.osax в редакторі Applescript.
ghoppe
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.