parse_version
This commit is contained in:
44
setup.sh
44
setup.sh
@@ -1,15 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
# USAGE: ./setup.sh install cbuild to /usr/local
|
||||
# ./setup.sh --local install cbuild to ~/.local
|
||||
|
||||
# exit on errors
|
||||
set -eo pipefail
|
||||
set -x
|
||||
set -xeo pipefail
|
||||
CBUILD_VERSION=2.1.0
|
||||
|
||||
function version_parse {
|
||||
local v="$1"
|
||||
IFS_backup="$IFS"
|
||||
IFS='.'
|
||||
v_array=($v)
|
||||
IFS="$IFS_backup"
|
||||
version_major=${v_array[0]}
|
||||
version_minor=${v_array[1]}
|
||||
version_patch=${v_array[2]}
|
||||
}
|
||||
|
||||
version_parse $CBUILD_VERSION
|
||||
if [ -z "$CBUILD_INSTALL_DIR" ]; then
|
||||
CBUILD_INSTALL_DIR="/usr/local/share/cbuild"
|
||||
if [ "$1" = "--local" ]; then
|
||||
CBUILD_INSTALL_DIR="~/.local/share/cbuild/${version_major}.${version_minor}"
|
||||
CBUILD_BIN_DIR="~/.local/bin"
|
||||
mkdir -p "~/.local"
|
||||
mkdir -p "~/.local/share"
|
||||
mkdir -p "~/.local/share/cbuild"
|
||||
mkdir -p "~/.local/bin"
|
||||
else
|
||||
CBUILD_INSTALL_DIR="/usr/local/share/cbuild/${version_major}.${version_minor}"
|
||||
CBUILD_BIN_DIR="/usr/local/bin"
|
||||
mkdir -p "/usr/local/share"
|
||||
mkdir -p "/usr/local/share/cbuild"
|
||||
mkdir -p "/usr/local/bin"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$CBUILD_INSTALL_DIR" != "." ]; then
|
||||
cp -r ./ "$CBUILD_INSTALL_DIR"
|
||||
rm -rf "$CBUILD_INSTALL_DIR/.git"
|
||||
fi
|
||||
ln -sf "$(realpath $CBUILD_INSTALL_DIR/cbuild.sh)" -T "/usr/local/bin/cbuild"
|
||||
rm -rf "$CBUILD_INSTALL_DIR"
|
||||
cp -r ./ "$CBUILD_INSTALL_DIR"
|
||||
rm -rf "$CBUILD_INSTALL_DIR/.git"
|
||||
ln -sf "$(realpath $CBUILD_INSTALL_DIR/cbuild.sh)" -T "$CBUILD_BIN_DIR/cbuild${version_major}.${version_minor}"
|
||||
|
||||
ln -sf "$(realpath $CBUILD_INSTALL_DIR/cbuild.sh)" -T "$CBUILD_BIN_DIR/cbuild"
|
||||
|
||||
Reference in New Issue
Block a user