#!/bin/bash # git-flow make-less installer for *nix systems, by Rick Osborne # Based on the git-flow core Makefile: # http://github.com/nvie/gitflow/blob/master/Makefile # Licensed under the same restrictions as git-flow: # http://github.com/nvie/gitflow/blob/develop/LICENSE # Does this need to be smarter for each host OS? if [ -z "$INSTALL_PREFIX" ] ; then INSTALL_PREFIX="/usr/local/bin" fi if [ -z "$REPO_NAME" ] ; then REPO_NAME="gitflow" fi if [ -z "$REPO_HOME" ] ; then REPO_HOME="http://github.com/nvie/gitflow.git" fi EXEC_FILES="git-flow" SCRIPT_FILES="git-flow-init git-flow-feature git-flow-hotfix git-flow-release git-flow-support git-flow-version gitflow-common gitflow-shFlags" SUBMODULE_FILE="gitflow-shFlags" echo "### gitflow no-make installer ###" case "$1" in uninstall) echo "Uninstalling git-flow from $INSTALL_PREFIX" if [ -d "$INSTALL_PREFIX" ] ; then for script_file in $SCRIPT_FILES $EXEC_FILES ; do echo "rm -vf $INSTALL_PREFIX/$script_file" rm -vf "$INSTALL_PREFIX/$script_file" done else echo "The '$INSTALL_PREFIX' directory was not found." echo "Do you need to set INSTALL_PREFIX ?" fi exit ;; help) echo "Usage: [environment] gitflow-installer.sh [install|uninstall]" echo "Environment:" echo " INSTALL_PREFIX=$INSTALL_PREFIX" echo " REPO_HOME=$REPO_HOME" echo " REPO_NAME=$REPO_NAME" exit ;; *) echo "Installing git-flow to $INSTALL_PREFIX" if [ -d "$REPO_NAME" -a -d "$REPO_NAME/.git" ] ; then echo "Using existing repo: $REPO_NAME" else echo "Cloning repo from GitHub to $REPO_NAME" git clone "$REPO_HOME" "$REPO_NAME" fi if [ -f "$REPO_NAME/$SUBMODULE_FILE" ] ; then echo "Submodules look up to date" else echo "Updating submodules" lastcwd=$PWD cd "$REPO_NAME" git submodule init git submodule update cd "$lastcwd" fi install -v -d -m 0755 "$INSTALL_PREFIX" for exec_file in $EXEC_FILES ; do install -v -m 0755 "$REPO_NAME/$exec_file" "$INSTALL_PREFIX" done for script_file in $SCRIPT_FILES ; do install -v -m 0644 "$REPO_NAME/$script_file" "$INSTALL_PREFIX" done exit ;; esac