#!/bin/bash

# インストールするディレクトリ名
DEST_NAME=(`grep -v "^#" config/redmine-plugins.lst | awk -F, '{print $1}'`)

# 展開したアーカイブのディレクトリ名 or タグ名
DIR_NAME=(`grep -v "^#" config/redmine-plugins.lst | awk -F, '{print $2}'`)

# URL
URL_NAME=(`grep -v "^#" config/redmine-plugins.lst | awk -F, '{print $3}'`)

for (( i = 0; i < ${#DIR_NAME[@]}; ++i ))
do
  FILE_NAME=`echo ${URL_NAME[$i]} | sed -e "s/.*\/\(.*$\)/\1/"`
  EXT=`echo ${URL_NAME[$i]} | sed -e "s/.*\.\(.*$\)/\1/"`
    case $EXT in
    zip)
        if [ ! -f cache/$FILE_NAME ]
        then
          wget -P cache ${URL_NAME[$i]}
        fi
        yes | unzip -q cache/$FILE_NAME
         $RMCMD $INSTALL_DIR/plugins/${DEST_NAME[$i]}
        mv ${DIR_NAME[$i]} $INSTALL_DIR/plugins/${DEST_NAME[$i]}
        rm -f $FILE_NAME
        ;;

    tgz|gz)
        if [ ! -f cache/$FILE_NAME ]
        then
          wget -P cache ${URL_NAME[$i]}
        fi
        tar zxf cache/$FILE_NAME
        $RMCMD $INSTALL_DIR/plugins/${DEST_NAME[$i]}
        mv ${DIR_NAME[$i]} $INSTALL_DIR/plugins/${DEST_NAME[$i]}
        rm -f $FILE_NAME
        ;;
    git)
        if [ ! -d cache/${DEST_NAME[$i]} ]
        then
          git clone ${URL_NAME[$i]} cache/${DEST_NAME[$i]}
        fi
        if [ -d cache/${DEST_NAME[$i]} ]
        then
          cd cache/${DEST_NAME[$i]}
          git checkout ${DIR_NAME[$i]}
          cd ../..
          $RMCMD $INSTALL_DIR/plugins/${DEST_NAME[$i]}
          cp -ar cache/${DEST_NAME[$i]} $INSTALL_DIR/plugins/
        fi
        ;;
    *)
        if [ ! -d cache/${DEST_NAME[$i]} ]
        then
          if [[ ${URL_NAME[$i]} =~ "bitbucket.org" ]]
          then
            hg clone ${URL_NAME[$i]} cache/${DEST_NAME[$i]}
            cd cache/${DEST_NAME[$i]}
            hg checkout ${DIR_NAME[$i]}
            cd ../..
          else
            svn co ${URL_NAME[$i]} cache/${DEST_NAME[$i]}
            if [ "${DIR_NAME[$i]}" != "HEAD" ]
            then
              cd cache/${DEST_NAME[$i]}
              svn update -r ${DIR_NAME[$i]}
              cd ../..
            fi
          fi
        fi
        $RMCMD $INSTALL_DIR/plugins/${DEST_NAME[$i]}
        cp -ar cache/${DEST_NAME[$i]} $INSTALL_DIR/plugins/${DEST_NAME[$i]}
        ;;
    esac
done


## setup plugin
pushd .

cd $INSTALL_DIR

bundle install --without development test postgresql sqlite

$RAKE redmine:plugins:migrate
$RAKE generate_secret_token
$RAKE db:migrate
$RAKE tmp:cache:clear
$RAKE tmp:sessions:clear
touch backlogs.dev
$RAKE redmine:backlogs:install task_tracker=サポート story_trackers=機能 labels=false

popd
