July 2015 Archives

Как уже писалось ранее, есть такая штука как Phing. Бывает, что проекту для работы требуется сторонние файлы.
В моем случае это сторонняя база данных. Весит она много и распространять ее с проектом нет особого смысла, т.к. данные меняются от релиза к релизу.
Но есть Phing!
Принесем ему зависимости:
composer global require  pear/http_request2: dev-master
На момент публикации нужна именно master-ветка, т.к. Phing споткнется об Pear.
Собственно таск:
<target name="getSde" desription="Download EVE SDE">
        <httpget url="https://www.fuzzwork.co.uk/dump/latest/eve.db.bz2" dir="${src}/data" sslverifypeer="false">
        <if>
            <os family="unix">
            <then>
                <echo>Exec bzip2 -dfsv ${src}/data/eve.db.bz2</echo>
                <exec executable="bzip2" passthru="true" checkreturn="true">
                    <arg value="-dfvs">
                    <arg value="${src}/data/eve.db.bz2">
                </arg></arg></exec>
            </then>
            <else>
                <echo level="error">Extract base ${src}/data/eve.db.bz2 in directory ${src}/data!</echo>
            </else>
        </os></if>
    </httpget>
</target>
Данный таск скачивает базу своими средствами и распаковывает ее средствами ОС.
Можно было сделать таск с wget-ом или curl-ом, но я спотыкался об отсутсвие того и другого в production-окружении, куда я не имею root-доступа.