parse_version

This commit is contained in:
2024-07-19 00:13:12 +03:00
parent 7d60219c33
commit 4b4794e253
7 changed files with 123 additions and 85 deletions

View File

@@ -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"