mirror of
https://github.com/gluster/glusterd2.git
synced 2026-02-05 12:45:38 +01:00
99 lines
2.6 KiB
Bash
Executable File
99 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
TAR="tar"
|
|
GOPATH=$(go env GOPATH)
|
|
GOBINDIR=$GOPATH/bin
|
|
|
|
install_tools_darwin() {
|
|
type brew >/dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
echo "brew is already installed"
|
|
else
|
|
echo "Installing brew."
|
|
mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
|
|
fi
|
|
|
|
type gtar >/dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
echo "gnu-tar (gtar) is already installed"
|
|
else
|
|
echo "Installing gnu-tar."
|
|
brew install gnu-tar
|
|
fi
|
|
|
|
TAR="gtar"
|
|
}
|
|
|
|
bootstrap_platform() {
|
|
case "$OSTYPE" in
|
|
solaris*) echo "SOLARIS" ;;
|
|
darwin*) echo "OSX" ; install_tools_darwin ;;
|
|
linux*) echo "LINUX" ;;
|
|
bsd*) echo "BSD" ;;
|
|
msys*) echo "WINDOWS" ;;
|
|
*) echo "unknown: $OSTYPE" ;;
|
|
esac
|
|
}
|
|
|
|
install_dep() {
|
|
DEPVER="v0.5.0"
|
|
DEPURL="https://github.com/golang/dep/releases/download/${DEPVER}/dep-linux-amd64"
|
|
type dep >/dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
local version
|
|
version=$(dep version | awk '/^ version/{print $3}')
|
|
if [[ $version == "$DEPVER" || $version > $DEPVER ]]; then
|
|
echo "dep ${DEPVER} or greater is already installed"
|
|
return
|
|
fi
|
|
fi
|
|
|
|
echo "Installing dep. Version: ${DEPVER}"
|
|
DEPBIN=$GOPATH/bin/dep
|
|
curl -L -o "$DEPBIN" $DEPURL
|
|
chmod +x "$DEPBIN"
|
|
}
|
|
|
|
install_gometalinter() {
|
|
LINTER_VER="2.0.5"
|
|
LINTER_TARBALL="gometalinter-${LINTER_VER}-linux-amd64.tar.gz"
|
|
LINTER_URL="https://github.com/alecthomas/gometalinter/releases/download/v${LINTER_VER}/${LINTER_TARBALL}"
|
|
|
|
type gometalinter >/dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
echo "gometalinter already installed"
|
|
return
|
|
fi
|
|
|
|
echo "Installing gometalinter. Version: ${LINTER_VER}"
|
|
curl -L -o "$GOBINDIR/$LINTER_TARBALL" $LINTER_URL
|
|
$TAR -zxf "$GOBINDIR/$LINTER_TARBALL" --overwrite --strip-components 1 --exclude={COPYING,*.md} -C "$GOBINDIR"
|
|
rm -f "$GOBINDIR/$LINTER_TARBALL"
|
|
}
|
|
|
|
install_etcd() {
|
|
ETCD_VER="v3.3.9"
|
|
ETCD_TARBALL="etcd-${ETCD_VER}-linux-amd64.tar.gz"
|
|
ETCD_URL="https://github.com/coreos/etcd/releases/download/${ETCD_VER}/${ETCD_TARBALL}"
|
|
|
|
type etcd >/dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
local version
|
|
version=$(etcd --version | awk '/^etcd Version/{print $3}')
|
|
if [[ $version == "$ETCD_VER" || $version > $ETCD_VER ]]; then
|
|
echo "etcd ${ETCD_VER} or greater is already installed"
|
|
return
|
|
fi
|
|
fi
|
|
|
|
echo "Installing etcd. Version: ${ETCD_VER}"
|
|
curl -L -o "$GOBINDIR/$ETCD_TARBALL" $ETCD_URL
|
|
$TAR -zxf "$GOBINDIR/$ETCD_TARBALL" --overwrite --strip-components 1 -C "$GOBINDIR" --wildcards --no-anchored {etcd,etcdctl}
|
|
rm -f "$GOBINDIR/$ETCD_TARBALL"
|
|
}
|
|
|
|
bootstrap_platform
|
|
install_dep
|
|
install_gometalinter
|
|
install_etcd
|