2013-02-07 19 views
7

Karşömen komutumun Composer'ı benim için almasını sağlamaya çalışıyorum. Composer PHP için bir dependancy yöneticisidir. According to the doc Bu komutu çalıştırmak gerekiyor: Composer.phar indireceğim dizine içine "curl -s https://getcomposer.org/installer | php". Bu bir terminalden çalışırken amaçlandığı gibi çalışır.Composer'ı Ant yoluyla nasıl geri alabilirim?

Bunun için Ant derleme dosyasını nasıl kurarım? Şimdiye kadar "composerget" hedefi için bu segmenti var, ama benim komut kabuğunda, sadece çıkış dosyayı kaydetmez var:

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

Herhangi bir yardım büyük appeciated edilir.

+0

: Eğer GNU Make kullanıyorsanız

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

, bu eşdeğerdir [Ant run komutları] ile olası bir kopyası (http://stackoverflow.com/questions/1187402/ant-run-command-with-pipes) – Mez

cevap

8

Hile yapmalılar.

Boru (|) yalnızca bir kabuk komut dosyasında kullanılabilir. Onu kıvırmak için bir argüman olarak geçiyorsun. Bu yüzden, bir kabuk betiğini çalıştırmanız gerekir - bu, bash -c ile yapabileceğiniz ve komutu bir kabuk deyimi olarak geçirebileceğiniz.

Attribution.

+1

Teşekkürler. Görünüşte aynı şeyi yapan Ant'in "GET" i kullanarak bitti. https://ant.apache.org/manual/Tasks/get.html Bunu kabul edildi olarak işaretleme. – Coreus

+0

Bu, yükleme komut dosyasının imzasını yürütmeden önce doğruladığından, güvenli değildir. –

0

Bu, Besteci kurulumunu indirmek onun imzayı doğrulamak ve yükleyici çalışacaktır:

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