Files
obitools4/install_obitools.sh

121 lines
3.0 KiB
Bash
Executable File

#!/bin/bash
INSTALL_DIR="/usr/local"
OBITOOLS_PREFIX=""
# default values
URL="https://go.dev/dl/"
OBIURL4="https://git.metabarcoding.org/obitools/obitools4/obitools4/-/archive/master/obitools4-master.tar.gz"
INSTALL_DIR="/usr/local"
OBITOOLS_PREFIX=""
# help message
function display_help {
echo "Usage: $0 [OPTIONS]"
echo ""
echo "Options:"
echo " -i, --install-dir Directory where obitools are installed "
echo " (as example use /usr/local not /usr/local/bin)."
echo " -p, --obitools-prefix Prefix added to the obitools command names if you"
echo " want to have several versions of obitools at the"
echo " same time on your system (as example -p g will produce "
echo " gobigrep command instead of obigrep)."
echo " -h, --help Display this help message."
}
while [ "$#" -gt 0 ]; do
case "$1" in
-i|--install-dir)
INSTALL_DIR="$2"
shift 2
;;
-p|--obitools-prefix)
OBITOOLS_PREFIX="$2"
shift 2
;;
-h|--help)
display_help
exit 0
;;
*)
echo "Error: Unsupported option $1"
exit 1
;;
esac
done
# the directory from where the script is run
DIR="$(pwd)"
# the temp directory used, within $DIR
# omit the -p parameter to create a temporal directory in the default location
# WORK_DIR=$(mktemp -d -p "$DIR" "obitools4.XXXXXX" 2> /dev/null || \
# mktemp -d -t "$DIR" "obitools4.XXXXXX")
WORK_DIR=$(mktemp -d "obitools4.XXXXXX")
# check if tmp dir was created
if [[ ! "$WORK_DIR" || ! -d "$WORK_DIR" ]]; then
echo "Could not create temp dir"
exit 1
fi
mkdir -p "${INSTALL_DIR}/bin" 2> /dev/null \
|| (echo "Please enter your password for installing obitools in ${INSTALL_DIR}"
sudo mkdir -p "${INSTALL_DIR}/bin")
if [[ ! "${INSTALL_DIR}/bin" || ! -d "${INSTALL_DIR}/bin" ]]; then
echo "Could not create ${INSTALL_DIR}/bin directory for installing obitools"
exit 1
fi
INSTALL_DIR="$(cd $INSTALL_DIR && pwd)"
echo WORK_DIR=$WORK_DIR
echo INSTALL_DIR=$INSTALL_DIR
echo OBITOOLS_PREFIX=$OBITOOLS_PREFIX
pushd $WORK_DIR
OS=$(uname -a | awk '{print $1}')
ARCH=$(uname -m)
if [[ "$ARCH" == "x86_64" ]] ; then
ARCH="amd64"
fi
GOFILE=$(curl "$URL" \
| grep 'class="download"' \
| grep "\.tar\.gz" \
| sed -E 's@^.*/dl/(go[1-9].+\.tar\.gz)".*$@\1@' \
| grep -i "$OS" \
| grep -i "$ARCH" \
| head -1)
GOURL=$(curl "${URL}${GOFILE}" \
| sed -E 's@^.*href="(.*\.tar\.gz)".*$@\1@')
curl "$GOURL" \
| tar zxf -
export PATH="$(pwd)/go/bin:$PATH"
curl "$OBIURL4" \
| tar zxf -
cd obitools4-master
if [[ -z "$OBITOOLS_PREFIX" ]] ; then
make
else
make OBITOOLS_PREFIX="${OBITOOLS_PREFIX}"
fi
(cp build/* "${INSTALL_DIR}/bin" 2> /dev/null) \
|| (echo "Please enter your password for installing obitools in ${INSTALL_DIR}"
sudo cp build/* "${INSTALL_DIR}/bin")
popd
rm -rf "$WORK_DIR"