From 6b85cb11687255bc7a51f601cea65d2833b67924 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Sat, 14 Feb 2015 01:19:50 +0100 Subject: [PATCH] Further changes to minio dev script --- ...env.sh => setup_development_environment.sh | 65 +++++++++++-------- 1 file changed, 37 insertions(+), 28 deletions(-) rename minio_install_env.sh => setup_development_environment.sh (68%) mode change 100644 => 100755 diff --git a/minio_install_env.sh b/setup_development_environment.sh old mode 100644 new mode 100755 similarity index 68% rename from minio_install_env.sh rename to setup_development_environment.sh index 88c2eef7b..380b7bdbc --- a/minio_install_env.sh +++ b/setup_development_environment.sh @@ -1,10 +1,14 @@ #!/usr/bin/env bash -GO_VERSION="1.4.1" -GOLANG_MD5SUM="" -YASM_VERSION="1.2.0" -UNAME=$(uname -sm) -MINIO_DEV=$HOME/minio-dev +_init() { + GO_VERSION="1.4" + GIT_VERSION="1.0" + PIP_VERSION="1.4" + GCC_VERSION="4.0" + YASM_VERSION="1.2.0" + UNAME=$(uname -sm) + MINIO_DEV=$HOME/minio-dev +} die() { echo -e "\e[31m[!] $@\e[0m"; exit 1 @@ -12,7 +16,7 @@ die() { msg() { echo -e "\e[93m[*] $@\e[0m" -} +} call() { $@ 2>&1 | sed 's/^\(.*\)$/ | \1/g' @@ -33,22 +37,22 @@ check_version() { return 1 } -is_supported() { +is_supported_arch() { local supported case ${UNAME##* } in "x86_64") supported=1 ;; - "i386") + "i386") supported=0 ;; - *) + *) supported=0 ;; esac if [ $supported -eq 0 ]; then - die "Invalid arch: ${UNAME} not supported, please use x86_64/amd64" - fi + die "Invalid arch: ${UNAME} not supported, please use x86_64/amd64" + fi } install_go() { @@ -94,11 +98,10 @@ setup_env() { cat < env.sh #!/bin/sh -PWD=\$(pwd) -[[ -z \$GOROOT ]] && export GOROOT=\$PWD/deps/go -export GOPATH=\$PWD/mygo -export PATH=\$PWD/deps/go/bin:\$PWD/mygo/bin:\$PWD/deps/yasm-$YASM_VERSION:\$PWD/deps/mkdocs/bin:\$GOPATH/bin:\$PATH -export PYTHONPATH=\$PYTHONPATH:\$PWD/deps/mkdocs/lib/python$python_version/site-packages/ +[[ -z \$GOROOT ]] && export GOROOT=\$MINIO_DEV/deps/go +export GOPATH=\$MINIO_DEV/mygo +export PATH=\$MINIO_DEV/deps/go/bin:\$MINIO_DEV/mygo/bin:\$MINIO_DEV/deps/yasm-\$YASM_VERSION:\$MINIO_DEV/deps/mkdocs/bin:\$GOPATH/bin:\$PATH +export PYTHONPATH=\$PYTHONPATH:\$MINIO_DEV/deps/mkdocs/lib/python\$python_version/site-packages/ EOF } @@ -108,19 +111,24 @@ install_mkdocs() { call pip install --install-option="--prefix=$MINIO_DEV/deps/mkdocs" mkdocs } +install_minio_deps() { + msg "Installing minio deps.." + env go get github.com/tools/godep && echo "Installed godep" + env go get golang.org/x/tools/cmd/cover && echo "Installed cover" +} + install_minio() { msg "Installing minio.." - push_dir src - call git clone "http://github.com/minio-io/minio" + push_dir ${MINIO_DEV}/src + call git clone "https://github.com/minio-io/minio" (cd minio; call make) - call git clone "http://github.com/minio-io/mc" - (cd mc; call make) pop_dir } main() { - is_supported + # Check supported arch + is_supported_arch [[ -d ${MINIO_DEV} ]] || \ die "You should have an empty working directory before you start.." @@ -128,28 +136,29 @@ main() { mkdir -p ${MINIO_DEV}/{src,deps,dls,mygo} push_dir ${MINIO_DEV} - env pip --version >/dev/null + check_version "$(env pip --version | awk {'print $2'})" ${PIP_VERSION} [[ $? -ne 0 ]] && die "pip not installed" - env gcc --version >/dev/null + check_version "$(env gcc --version | sed 's/^.* \([0-9.]*\).*$/\1/' | head -1)" ${GCC_VERSION} [[ $? -ne 0 ]] && die "gcc not installed" - check_version "$(env git --version)" "1.0" + check_version "$(env git --version | sed 's/^.* go\([0-9.]*\).*$/\1/')" ${GIT_VERSION} [[ $? -ne 1 ]] && die "Git not installed" - check_version "$(env go version 2>/dev/null | sed 's/^.* go\([0-9.]*\).*$/\1/')" "1.4.0" + check_version "$(env go version 2>/dev/null | sed 's/^.* go\([0-9.]*\).*$/\1/')" ${GOLANG_VERSION} [[ $? -eq 0 ]] && \ [[ -z $GOROOT ]] && die "Please setup the goroot variable according to your current installation of golang." \ || install_go - check_version "$(env yasm --version 2>/dev/null)" "1.2.0" + check_version "$(env yasm --version 2>/dev/null)" ${YASM_VERSION} [[ $? -eq 0 ]] || install_yasm - env mkdocs help 2>/dev/null + env mkdocs help >/dev/null 2>&1 [[ $? -eq 0 ]] || install_mkdocs setup_env source env.sh + install_minio_deps install_minio msg "--" @@ -158,4 +167,4 @@ main() { # Putting main function at the end of the script ensures that the execution # won't start until the script is entirely downloaded. -main +_init "$@" && main "$@"