2013-02-07 19 views
7

मैं अपनी चींटी स्क्रिप्ट को मेरे लिए संगीतकार पुनर्प्राप्त करने की कोशिश कर रहा हूं। Composer PHP के लिए एक निर्भरता प्रबंधक है। According to the doc किसी को यह आदेश चलाने की जरूरत है: "curl -s https://getcomposer.org/installer | php" जो मैं जिस निर्देशिका में हूं, उसमें Composer.phar डाउनलोड करेगा। यह टर्मिनल से चलने के इरादे से कार्य करता है।मैं चींटी के माध्यम से संगीतकार कैसे प्राप्त करूं?

मैं इसके लिए चींटी बिल्ड फ़ाइल कैसे सेट करूं? अब तक मैं "composerget" लक्ष्य के लिए इस क्षेत्र मिल गया है, लेकिन यह फ़ाइल, केवल उत्पादन यह मेरे आदेश खोल में बचाने नहीं करता है:

....  
<target name="composerget" description="Composer update dependencies"> 
    <exec executable="curl"> 
     <arg line="-s" /> 
      <arg line="https://getcomposer.org/installer"/> 
     <arg line="| php" /> 
    </exec> 
    </target> 
.... 

किसी भी मदद की बहुत appeciated है।

+0

:

<target name="composer" description="Install composer"> <exec executable="wget"> <arg value="-O" /> <arg value="composer-setup.sig" /> <arg value="https://composer.github.io/installer.sig" /> </exec> <exec executable="wget"> <arg value="-O" /> <arg value="composer-setup.php" /> <arg value="https://getcomposer.org/installer" /> </exec> <exec executable="bash"> <arg value="-c" /> <arg value="awk '{print $$0 &quot; composer-setup.php&quot;}' composer-setup.sig | sha384sum --check" /> </exec> <exec executable="php"> <arg value="composer-setup.php" /> </exec> <exec executable="rm"> <arg value="composer-setup.php" /> </exec> <exec executable="rm"> <arg value="composer-setup.sig" /> </exec> <exec executable="mv"> <arg value="composer.phar" /> <arg value="composer" /> </exec> </target> 

आप उपयोग कर रहे हैं जीएनयू बनाओ, यह बराबर है [पाइप के साथ चींटी रन कमांड का संभावित डुप्लिकेट] (http://stackoverflow.com/questions/1187402/ant-run-command-with-pipes) – Mez

उत्तर

8
<target name="composerget" description="Composer update dependencies"> 
    <exec executable="/bin/bash"> 
     <arg value="-c" /> 
     <arg value="curl -s https://getcomposer.org/installer | php" /> 
    </exec> 
</target> 

चाल चलाना चाहिए।

पाइप (|) केवल शेल स्क्रिप्ट में उपयोग किया जा सकता है। आप इसे कर्ल करने के लिए एक तर्क के रूप में गुजर रहे हैं। तो आपको एक शेल स्क्रिप्ट निष्पादित करने की आवश्यकता है - जिसे आप bash -c के साथ कर सकते हैं और शेल स्टेटमेंट के रूप में कमांड पास कर सकते हैं।

Attribution.

+1

धन्यवाद। मैं चींटी की "जीईटी" का उपयोग कर समाप्त हुआ, जो वही स्पष्ट रूप से करता है। https://ant.apache.org/manual/Tasks/get.html इसे स्वीकार करने के रूप में वैसे भी चिह्नित करें। – Coreus

+0

यह सुरक्षित नहीं है क्योंकि यह इसे निष्पादित करने से पहले इंस्टॉल स्क्रिप्ट के हस्ताक्षर को सत्यापित नहीं करता है। –

0

इस संगीतकार इंस्टॉलर डाउनलोड हो जाएगा, अपने हस्ताक्षर को सत्यापित करने, और इंस्टॉलर चला:

all: vendor 

vendor: composer composer.json composer.lock 
     ./composer install 

composer: 
     wget -O composer-setup.sig https://composer.github.io/installer.sig 
     wget -O composer-setup.php https://getcomposer.org/installer 
     awk '{print $$0 " composer-setup.php"}' composer-setup.sig | sha384sum --check 
     php composer-setup.php --quiet 
     rm composer-setup.* 
     mv composer.phar composer 
संबंधित मुद्दे

 संबंधित मुद्दे