├── etc ├── rbenv.d │ ├── rehash │ │ └── composer.bash │ └── which │ │ └── composer.bash └── phpenv.d │ ├── rehash │ └── composer.bash │ └── which │ └── composer.bash ├── .travis.yml ├── README.md └── libexec └── composer /etc/rbenv.d/rehash/composer.bash: -------------------------------------------------------------------------------- 1 | #!/bin/false 2 | # 3 | # Summary: phpenv composer plugin 4 | 5 | cd "$RBENV_ROOT" 6 | make_shims composer versions/*/composer/vendor/bin/* 7 | 8 | # for system composer 9 | composer_cmd=$(RBENV_VERSION=system phpenv which composer 2>/dev/null ||:) 10 | if [ -n "$composer_cmd" -a -x "$composer_cmd" ]; then 11 | composer_home=$("$composer_cmd" config -g home) 12 | composer_bin_dir=$("$composer_cmd" config -g bin-dir) 13 | if [ -n "$composer_home" -a -n "$composer_bin_dir" -a -d "$composer_home/$composer_bin_dir" ]; then 14 | make_shims "$composer_home/$composer_bin_dir"/* 15 | fi 16 | fi 17 | unset composer_cmd 18 | unset composer_home 19 | unset composer_bin_dir 20 | -------------------------------------------------------------------------------- /etc/phpenv.d/rehash/composer.bash: -------------------------------------------------------------------------------- 1 | #!/bin/false 2 | # 3 | # Summary: phpenv composer plugin 4 | set -e 5 | [ -n "$PHPENV_DEBUG" ] && set -x 6 | 7 | cd "$PHPENV_ROOT" 8 | make_shims composer versions/*/composer/vendor/bin/* 9 | 10 | # for system composer 11 | composer_cmd=$(RBENV_VERSION=system phpenv which composer 2>/dev/null ||:) 12 | if [ -n "$composer_cmd" -a -x "$composer_cmd" ]; then 13 | composer_home=$("$composer_cmd" config -g home) 14 | composer_bin_dir=$("$composer_cmd" config -g bin-dir) 15 | if [ -n "$composer_home" -a -n "$composer_bin_dir" -a -d "$composer_home/$composer_bin_dir" ]; then 16 | make_shims "$composer_home/$composer_bin_dir"/* 17 | fi 18 | fi 19 | unset composer_cmd 20 | unset composer_home 21 | unset composer_bin_dir 22 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | 3 | #sudo: required 4 | sudo: false 5 | 6 | before_script: 7 | #- git clone https://github.com/ngyuki/phpenv-composer.git ~/.phpenv/plugins/phpenv-composer 8 | - mkdir -p ~/.phpenv/plugins/ 9 | - ln -sfn "$PWD" ~/.phpenv/plugins/phpenv-composer 10 | - rm -f ~/.phpenv/versions/*/etc/conf.d/xdebug.ini 11 | - phpenv rehash 12 | 13 | script: 14 | - which composer 15 | - phpenv which composer 16 | - composer --version 17 | - ls -l "$(phpenv prefix)/composer/composer.phar" 18 | 19 | - composer config -g home 20 | - test "$(composer config -g home)" == "$(phpenv prefix)/composer" 21 | 22 | - composer config -g cache-dir 23 | - test "$(composer config -g cache-dir)" == "$HOME/.composer/cache" 24 | 25 | - composer global require phpunit/phpunit 26 | - phpenv rehash 27 | 28 | - phpenv which phpunit 29 | - test "$(phpenv which phpunit)" == "$(phpenv prefix)/composer/vendor/bin/phpunit" 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # phpenv composer plugin 2 | 3 | [![Build Status](https://travis-ci.org/ngyuki/phpenv-composer.svg?branch=master)](https://travis-ci.org/ngyuki/phpenv-composer) 4 | 5 | ## Install 6 | 7 | ```console 8 | $ cd ~/.phpenv/plugins 9 | $ git clone https://github.com/ngyuki/phpenv-composer.git 10 | : 11 | $ phpenv rehash 12 | $ phpenv global 5.5.9 13 | $ composer --version 14 | Download composer.phar ... 15 | #!/usr/bin/env php 16 | All settings correct for using Composer 17 | Downloading... 18 | 19 | Composer successfully installed to: /tmp/composer.phar 20 | Use it: php /tmp/composer.phar 21 | Move composer.phar to /home/your/.phpenv/versions/5.5.9/composer 22 | Composer version 714a47ef93d2387b66a6eff2cb9e2191c79b8d6d 2014-02-23 16:15:02 23 | ``` 24 | 25 | ## Example 26 | 27 | ```console 28 | $ composer global require phpunit/phpunit:\* 29 | : 30 | $ phpenv rehash 31 | $ phpenv which phpunit 32 | /home/your/.phpenv/versions/5.5.9/composer/vendor/bin/phpunit 33 | 34 | $ phpunit --version 35 | PHPUnit 3.7.31 by Sebastian Bergmann. 36 | ``` 37 | -------------------------------------------------------------------------------- /etc/rbenv.d/which/composer.bash: -------------------------------------------------------------------------------- 1 | #!/bin/false 2 | # 3 | # Summary: phpenv composer plugin 4 | 5 | if [ "$RBENV_VERSION" != "system" ]; then 6 | if [ -x "${RBENV_ROOT}/versions/${RBENV_VERSION}/composer/vendor/bin/${RBENV_COMMAND}" ]; then 7 | RBENV_COMMAND_PATH="${RBENV_ROOT}/versions/${RBENV_VERSION}/composer/vendor/bin/${RBENV_COMMAND}" 8 | elif [ "$RBENV_COMMAND" == "composer" ]; then 9 | RBENV_COMMAND_PATH="${RBENV_ROOT}/plugins/phpenv-composer/libexec/composer" 10 | fi 11 | elif [ "$RBENV_COMMAND" != "composer" ]; then 12 | composer_cmd=$(RBENV_VERSION=system phpenv which composer 2>/dev/null ||:) 13 | if [ -n "$composer_cmd" -a -x "$composer_cmd" ]; then 14 | composer_home=$("$composer_cmd" config -g home) 15 | composer_bin_dir=$("$composer_cmd" config -g bin-dir) 16 | if [ -n "$composer_home" -a -n "$composer_bin_dir" -a -x "$composer_home/$composer_bin_dir/$RBENV_COMMAND" ]; then 17 | RBENV_COMMAND_PATH=$composer_home/$composer_bin_dir/$RBENV_COMMAND 18 | fi 19 | fi 20 | unset composer_cmd 21 | unset composer_home 22 | unset composer_bin_dir 23 | fi 24 | -------------------------------------------------------------------------------- /libexec/composer: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Summary: phpenv composer plugin 3 | 4 | set -e 5 | 6 | prefix=$(phpenv prefix) 7 | 8 | if [ -z "$prefix" ]; then 9 | echo "cannot get phpenv prefix" 1>&2 10 | exit 1 11 | fi 12 | 13 | php_bin=$prefix/bin/php 14 | composer_home=$prefix/composer 15 | composer_phar=$prefix/composer/composer.phar 16 | 17 | if [ ! -f "$composer_phar" ]; then 18 | echo "Download composer.phar ..." 1>&2 19 | 20 | if [ ! -d "$composer_home" ]; then 21 | mkdir -p "$composer_home" 22 | fi 23 | 24 | tmp="$(dirname "$(mktemp --dry-run 2>/dev/null)")" 25 | tmp=${tmp:-/tmp} 26 | 27 | curl -sS https://getcomposer.org/installer | "$php_bin" -- --install-dir="$tmp" 28 | 29 | if [ $? -eq 0 ]; then 30 | echo "Move composer.phar to $composer_home" 1>&2 31 | mv "$tmp/composer.phar" "$composer_home/composer.phar" 32 | fi 33 | fi 34 | 35 | if [ ! -f "$composer_phar" ]; then 36 | echo "composer.phar notfount" 1>&2 37 | exit 1 38 | fi 39 | 40 | export COMPOSER_CACHE_DIR=$("$php_bin" "$composer_phar" config -g cache-dir) 41 | export COMPOSER_HOME=$composer_home 42 | 43 | "$php_bin" "$composer_phar" "$@" 44 | -------------------------------------------------------------------------------- /etc/phpenv.d/which/composer.bash: -------------------------------------------------------------------------------- 1 | #!/bin/false 2 | # 3 | # Summary: phpenv composer plugin 4 | set -e 5 | [ -n "$PHPENV_DEBUG" ] && set -x 6 | 7 | if [ "$PHPENV_VERSION" != "system" ]; then 8 | if [ -x "${PHPENV_ROOT}/versions/${PHPENV_VERSION}/composer/vendor/bin/${PHPENV_COMMAND}" ]; then 9 | PHPENV_COMMAND_PATH="${PHPENV_ROOT}/versions/${PHPENV_VERSION}/composer/vendor/bin/${PHPENV_COMMAND}" 10 | elif [ "$PHPENV_COMMAND" == "composer" ]; then 11 | PHPENV_COMMAND_PATH="${PHPENV_ROOT}/plugins/phpenv-composer/libexec/composer" 12 | fi 13 | elif [ "$PHPENV_COMMAND" != "composer" ]; then 14 | composer_cmd=$(PHPENV_VERSION=system phpenv which composer 2>/dev/null ||:) 15 | if [ -n "$composer_cmd" -a -x "$composer_cmd" ]; then 16 | composer_home=$("$composer_cmd" config -g home) 17 | composer_bin_dir=$("$composer_cmd" config -g bin-dir) 18 | if [ -n "$composer_home" -a -n "$composer_bin_dir" -a -x "$composer_home/$composer_bin_dir/$PHPENV_COMMAND" ]; then 19 | PHPENV_COMMAND_PATH=$composer_home/$composer_bin_dir/$PHPENV_COMMAND 20 | fi 21 | fi 22 | unset composer_cmd 23 | unset composer_home 24 | unset composer_bin_dir 25 | fi 26 | --------------------------------------------------------------------------------