The Pragmatic Ball boy

iOSを中心にやってる万年球拾いの老害エンジニアメモ

FuelPHPのインストーラの中身

FuelPHPのインストール時のコマンドでなにをやっているのか調査

$ curl get.fuelphp.com/oil | sh

$ oil create fuelphp

$ curl get.fuelphp.com/oil | sh では、/usr/bin/oilにhttp://get.fuelphp.com/installer.shを書き込んでる

#!/bin/bash

PREFIX="/usr/bin/"

install_oil() {

    if [ `which sudo` ]; then
        sudo sh -c "curl --silent http://get.fuelphp.com/installer.sh > ${PREFIX}oil"
        sudo chmod +x ${PREFIX}oil
    else
        sh -c "curl --silent http://get.fuelphp.com/installer.sh > ${PREFIX}oil"
        chmod +x ${PREFIX}oil
    fi
}

#
# Handle execution
#
main() {

  # Start installation
  install_oil
  exit 0
}

main

http://get.fuelphp.com/installer.shの中身はこのようになっていて oil createが実行されたときにFuelPHPのgitリポジトリからcloneしてきてsubmodule updateしてcomposerをアップデートして、refine installでパーミッションを変更するといういたって単純なことをしてる。

#!/bin/bash

# if we have the oil script in the current directory, start that
if [ -f "./oil" ]; then
        php oil "$@"
else

                # check for bash commandline options
        if [ "$1" == "create" ]; then

                                # make sure git is installed
                if [ ! `which git` ]; then
                    echo "For this installer to work you'll need to install Git."
                    echo '        http://git-scm.com/'
                fi

                                # clone the repository, and make sure the latest master is active
                git clone --recursive git://github.com/fuel/fuel.git "./$2"
                cd ./$2
                branch=`git branch -a | grep -v "remote" | grep "master" | tail -1`
                branch=${branch#* }
                git checkout $branch
                git submodule foreach git checkout $branch

                # run composer
                php composer.phar self-update
                php composer.phar update

                # fix potential rights issues
                cd ..
                php "./$2/oil" refine install
        else
                echo 'This is not a valid Fuel installation so Oil is a bit lost.'
                echo '        http://fuelphp.com/docs/installation/instructions.html'

        fi
fi

ただgitリポジトリの最新のmasterブランチをとってくるようになっているので、 バージョンを指定したいとかは使えないですが、常に最新使うんだったら特に問題なさげ