From 2780ad7e777f17158262ec2743c9c113b0035415 Mon Sep 17 00:00:00 2001 From: Ross Perkins Date: Fri, 20 Feb 2015 11:12:19 +0100 Subject: [PATCH] Added Composer support --- README.rst | 5 +++++ php/composer.sls | 34 ++++++++++++++++++++++++++++++++++ php/map.jinja | 4 ++++ 3 files changed, 43 insertions(+) create mode 100644 php/composer.sls diff --git a/README.rst b/README.rst index dfb753f..4f4031e 100644 --- a/README.rst +++ b/README.rst @@ -40,6 +40,11 @@ Installs the php-cgi package. Installs the php-cli package. +``php.composer`` +----------- + +Installs [composer](https://getcomposer.org) and keeps it updated. + ``php.curl`` ------------ diff --git a/php/composer.sls b/php/composer.sls new file mode 100644 index 0000000..5360a09 --- /dev/null +++ b/php/composer.sls @@ -0,0 +1,34 @@ +{% from "php/map.jinja" import php with context %} +{% set install_file = php.local_bin + '/composer' %} + +include: + - php + +get-composer: + cmd.run: + - name: 'CURL=`which curl`; $CURL -sS https://getcomposer.org/installer | php' + - unless: test -f {{ install_file }} + - cwd: {{ php.temp_dir }} + - require: + - pkg: php + +# Get COMPOSER_DEV_WARNING_TIME from the installed composer, and if that time has passed +# then it's time to run `composer selfupdate` +# +# It would be nice if composer had a command line switch to get this, but it doesn't, +# and so we just grep for it. +# +update-composer: + cmd.run: + - name: "{{ install_file }} selfupdate" + - unless: "WARNING_TIME=$(grep --text COMPOSER_DEV_WARNING_TIME {{ install_file }} | egrep '^\s*define' | sed -e 's,[^[:digit:]],,g'); php -r \"exit($WARNING_TIME > time() ? 0 : 1);\"" + - cwd: {{ php.temp_dir }} + - require: + - cmd: get-composer + +install-composer: + cmd.wait: + - name: install -m 0755 {{ php.temp_dir }}/composer.phar {{ install_file }} + - cwd: {{ php.temp_dir }} + - watch: + - cmd: get-composer diff --git a/php/map.jinja b/php/map.jinja index 6f88ed9..2f86c1c 100644 --- a/php/map.jinja +++ b/php/map.jinja @@ -31,6 +31,8 @@ 'mongo_pecl': 'mongo', 'mongo_ext': 'mongo.so', 'ext_conf_path': '/etc/php5/mods-available', + 'local_bin': '/usr/local/bin', + 'temp_dir': '/tmp', }, 'RedHat': { 'php_pkg': 'php', @@ -64,5 +66,7 @@ 'mongo_pecl': 'mongo', 'mongo_ext': 'mongo.so', 'ext_conf_path': '/etc/php5/conf.d', + 'local_bin': '/usr/local/bin', + 'temp_dir': '/tmp', }, }, merge=salt['pillar.get']('php:lookup')) %}