मैक ओएस एक्स पर फाइल चेंज पर स्क्रिप्ट चलाएँ


8

किसी को मैक ओएस के लिए एक कार्यक्रम के बारे में पता है कि आप एक निष्पादन योग्य और देखने के लिए एक फ़ाइल के लिए नाम पारित कर सकते हैं, ताकि यह निष्पादन योग्य हर बार चलाए जा रहे फ़ाइल को बदल दिया जाए?

मेरे मन में कुछ ऐसा है:

$ 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 लेख में उपलब्ध व्यापक जानकारी ।

हालाँकि ऐसा प्रतीत होता है कि यह अब विकास के अधीन नहीं है, लेकिन लिंगोन एक एप्लीकेशन है जो इन लॉन्चड प्लिस्ट फाइलों को सेट करने के लिए GUI तरीका प्रदान करता है।

संपादित करें:

मोटे तौर पर, यहां आप ऊपर दिए गए अपने नमूना पथों का उपयोग कर रहे हैं। 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

आप इसे ऑटोमेकर में कर सकते हैं। यह मेरा मानना ​​है कि ऑटोमेकर वर्कफ़्लो में फ़ोल्डर विकल्प के तहत है (मैक के सामने नहीं)। फिर आप बस स्क्रिप्ट को फ़ोल्डर में संलग्न करते हैं और यह हर बार जब कोई फ़ाइल जोड़ / बदल जाती है तो आग लग जाएगी।


मैं काफी फॉलो नहीं कर सकता। मैं ऑटोमेकर के लिए नया हूं, लेकिन जहां तक ​​मैं जानता हूं कि आप अपनी स्क्रिप्ट को निष्पादित करने के लिए नहीं चुन सकते हैं लेकिन जब इसे चलाया जाता है तो केवल क्या करना है। मैक ओएस में फ़ोल्डर क्रियाएं हैं जिनका मैं भी उपयोग कर सकता हूं लेकिन मुझे लगा कि AppleScript में केवल "फ़ोल्डर आइटम बदलने पर", लेकिन "फ़ोल्डर आइटम बदलने पर" जैसा कुछ नहीं है।
जोहान्स

आप सही हैं @ जोहान्स। जबकि फ़ोल्डर आइटम जोड़ने, फ़ोल्डर आइटम हटाने, फ़ोल्डर विंडो को स्थानांतरित करने, फ़ोल्डर विंडो बंद करने और फ़ोल्डर को खोलने के लिए फ़ोल्डर क्रियाएं होती हैं, फ़ाइलों में परिवर्तन का पता लगाने के लिए कोई फ़ोल्डर कार्रवाई नहीं होती है। आप इसे Applescript एडिटर में StandardAdditions.osax डिक्शनरी खोलकर देख सकते हैं।
गप्पे १५'१० को १h:09
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.