खोजक से Makefile चलाएँ


8

मैं अक्सर विभिन्न प्रोजेक्ट (LaTeX लेख, प्रोग्रामिंग सामान) के स्रोत निर्देशिकाओं में फाइंडर का उपयोग करके यात्रा करता हूं, जिसके लिए संकलन एक पायलट है Makefile। मैं सोच रहा था कि क्या कोई सरल तरीका है (सेवा मेनू, ऑटोमेटर जो भी हो) makeफाइंडर से अच्छी डायरेक्टरी में संबंधित कमांड ( ) को लागू करने के लिए (राइट-क्लिक कुछ)।

मैं OS X 10.8 चला रहा हूं।

आपके सुझावों के लिए अग्रिम धन्यवाद


100% खोजक के बारे में निश्चित नहीं है make, लेकिन, आप एक टर्मिनल विंडो खोल सकते हैं और makeइसके बाद Makefileपथ को कॉपी करने के लिए टाइप कर सकते हैं।
2rs2ts

1
@ 2rs2ts, यदि आप इस तरह से जाते हैं, तो make -C खींचने से पहले टाइप करें Makefile
lhf

@lhf आह हां, बिल्कुल।
2rs2ts

1
@ 2rs2ts में जोड़ने से आप संभवतः टर्मिनल में या संपादक से त्रुटि संदेश देखने के लिए चाहते हैं
user151019

जवाबों:


3

आप इस तरह एक समारोह का उपयोग कर सकते हैं:

fmake() {
  cd "$(osascript -e 'tell application "Finder"
      POSIX path of (target of Finder window 1 as alias)
  end tell' 2> /dev/null)"
  make && make install
}

या cd कमांड के लिए एक फंक्शन को सेव करें और कुछ को चलाने के लिए हिस्ट्री-सर्च-बैकवर्ड का उपयोग करें cdf && make && make install

या स्वचालित को खोलें, सेवा टेम्पलेट चुनें, इनपुट प्रकार को बिना इनपुट पर सेट करें, और इस तरह एक रन AppleScript कार्रवाई जोड़ें:

try
    tell application "Finder"
        POSIX path of (target of Finder window 1 as alias)
    end tell
    tell application "Terminal"
        do script "cd " & quoted form of result & " && make && make install"
        activate
    end tell
end

यदि कोई स्क्रिप्ट त्रुटि के साथ बाहर निकलती है, तो बिना कोशिश के ब्लॉक ऑटोमेकर एक त्रुटि संवाद दिखाएगा।


आप त्रुटियों को देखने के लिए
स्टडआउट

0

स्वीकार किया, यह एक अनाड़ी तरीका है लेकिन शायद इससे बेहतर कुछ नहीं:

makeit.command नाम की एक टेक्स्ट फ़ाइल बनाएं और उसमें केवल टेक्स्ट की एक पंक्ति डालें:

make

फिर फाइल को 755 चोमोड करें

chmod 755 makeit.command 

यदि आप मेक चलाना चाहते हैं, तो उसे उस फ़ोल्डर में खींचें / कॉपी करें और फिर उसे डबल क्लिक करें।


1
उस मामले में वर्तमान निर्देशिका क्या है? मुझे नहीं लगता कि यह वह जगह होगी जहां
मेकफाइल

0

मैंने #!/usr/bin/make -fपहली पंक्ति के रूप में जोड़ने Makefileऔर इसे निष्पादन योग्य बनाने की कोशिश की लेकिन यह सही फ़ोल्डर में नहीं चलता है। इसलिए मैं द-डूड द्वारा उत्तर की तर्ज पर एक समाधान के लिए तय किया गया हूं।

एक टर्मिनल खोलें और उस फ़ोल्डर पर जाएं जहां आपके पास प्रोजेक्ट है और Makefileफिर, इसे टाइप करें:

cat <<EOF > Makeit
make -C `dirname $_`
echo 'Press enter to continue'
read
EOF
chmod +x Makeit

अब उसी फ़ोल्डर पर डबल-क्लिक Makeitकरना चाहिए make। आप जब चाहें तब कॉल makeया एडिट Makeitकर सकते हैं।

यह समाधान काम करता है लेकिन यह बहुत सुविधाजनक नहीं हो सकता है क्योंकि आपको Makeitप्रत्येक फ़ोल्डर में प्रतिलिपि की आवश्यकता होती है ।


0

मुझे लॉरी रांटा का AppleScript जवाब पसंद है। मैं अपने लिए एक ऐसी चीज पर काम कर रहा था, जो फाइंडर को खोजने के लिए फोल्डर का उपयोग करने और फाइंडर में चुने गए डायरेक्टरी में गिट रिपॉजिटरी बनाने में सक्षम हो।

मैं देख सकता हूं कि आप मेक कमांड को फोल्डर पर भी कह सकते हैं।

यह मुझे लगता है कि फाइंडर के GUI का उपयोग करने में सक्षम होना अच्छा होगा और आप चयनित निर्देशिका के साथ बहुत सी चीजें करना चाहते हैं।

चयनित निर्देशिका से कनेक्ट करें

मुझे लगता है कि यह स्वचालक सेवा AppleScript के अंदर एक निर्देशिका के लिए किसी भी प्रकार की कमांड जारी करने की तुलना में अधिक सामान्य है और यह आपको जो भी शेल कमांड दर्ज करना चाहता है उसे दर्ज करने के लिए तैयार हो जाता है।

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

मुझे क्षमा करें, ऊपर की मेरी पोस्ट ने मूल प्रश्न का उत्तर नहीं दिया। यहाँ एक ऑटोमेटर वर्कफ़्लो का लिंक सेव्ड के रूप में सेव किया गया है जो फाइंडर में चुनी गई डायरेक्टरी पर मेक कमांड चलाता है:

रन बनाओ

मैंने अपनी इस नई सेवा की कोशिश की और मुझे यह पसंद नहीं आया क्योंकि कभी-कभी आप शेल कमांड "मेक" करना चाह सकते हैं और दूसरी बार आप शेल कमांड "मेक && मेक इनस्टॉल" करना चाहते हैं, या आप करना चाहते हैं एक अलग लक्ष्य बनाएं "पूर्ण निर्माण करें" या कुछ और। इसलिए मैं सोच रहा था कि "कनेक्टेड टू सेलेक्टेड डायरेक्टरी" नामक सेवा सबसे अच्छी होगी।


यह सवाल का जवाब कैसे देता है यह सामान्य टिप्पणी है लेकिन कोई सटीक उत्तर नहीं है
user151019

मुझे माफ कर दो। मैं समाप्त कोड के लिंक के साथ एक सटीक उत्तर प्रदान करना चाहता था जब डाउनलोड सेवा के रूप में स्थापित होगा।
कायदेल

पहले से ही एक प्रीइंस्टॉल्ड सेवा (फ़ोल्डर में नया टर्मिनल) है जो आपकी दूसरी सेवा के समान काम करती है।

@ "लॉरी रांटा" धन्यवाद। आप निश्चित रूप से जानकार हैं। मैंने सेवा की कोशिश की "फ़ोल्डर में नया टर्मिनल" यह मेरे लिए काम नहीं किया, मुझे लगता है कि क्योंकि मैं अपने ".bash_profile" में एक डिफ़ॉल्ट निर्देशिका सेट करता हूं। किसी कारण के लिए, मेरी सेवा: "कनेक्टेड डायरेक्टेड डायरेक्ट्री से कनेक्ट" मेरे लिए काम करती है, लेकिन सेवा: "न्यू टर्मिनल एट फोल्डर" टर्मिनल.एप को खोलती है, लेकिन यह वर्तमान निर्देशिका को सही ढंग से सेट नहीं करती है। मुझे एक वर्तमान निर्देशिका मिली है जो मेरे ".bash_profile" में सेट है।
कायदेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.