mod-manager/install.sh

93 lines
2.0 KiB
Bash
Raw Normal View History

2022-08-09 16:33:13 +00:00
#!/bin/bash
MIN_NODE_VERSION=12
DOWNLOAD_DIR="/tmp/mod-manager-install"
INSTALL_DIR="/usr/local/lib/mod-manager"
2022-08-09 16:55:41 +00:00
BINARY_PATH="/usr/bin/mod-manager"
2022-08-09 16:33:13 +00:00
CYAN="\033[1;96m"
RED="\033[0;91m"
GREEN="\033[0;92m"
RESET='\033[0m'
print () {
echo -e "$1 $2 $RESET"
}
info () {
print "$CYAN" "$1"
}
error() {
print "$RED" "$1"
}
success() {
print "$GREEN" "$1"
}
2022-08-09 16:55:41 +00:00
if [ "$EUID" -ne 0 ]
then
error "This script must be ran as root. Please use sudo."
exit
fi
2022-08-09 17:56:14 +00:00
rm -rf "$DOWNLOAD_DIR" || exit
mkdir -p "$DOWNLOAD_DIR" || exit
2022-08-09 16:33:13 +00:00
# Verify compatible version of node is installed
info "Verifying node verison..."
2022-08-09 17:58:20 +00:00
NODE_VERSION_STR=$(node --version)
if [[ "$?" -eq 127 ]]
then
2022-08-09 17:52:10 +00:00
error "Node does not appear to be installed. Please install Node version $MIN_NODE_VERSION or higher"
exit
fi
2022-08-09 17:58:20 +00:00
npm --version
if [[ "$?" -eq 127 ]]
then
error "Npm does not appear to be installed. Please install npm and re run the installer"
exit
fi
NODE_VERSION=$( (echo $NODE_VERSION_STR | sed 's/\..*//') | sed "s/v//")
2022-08-09 16:33:13 +00:00
if [[ "$NODE_VERSION" -ge "$MIN_NODE_VERSION" ]]
then
success "A version of node greater than $MIN_NODE_VERSION is installed!"
else
error "A version of node greater than $MIN_NODE_VERSION is required. Please install it and re run this install script"
exit
fi
# Download source files
info "Downloading mod-manager source..."
2024-04-06 18:51:31 +00:00
git clone "https://git.bits.team/Bits/mod-manager.git" "$DOWNLOAD_DIR" || exit
2022-08-09 16:33:13 +00:00
# Compile
info "Compiling..."
cd "$DOWNLOAD_DIR" || exit
2022-08-09 17:56:14 +00:00
npm install --save || exit
npm install -g @vercel/ncc || exit
npx tsc || exit
2022-08-09 18:01:03 +00:00
ncc build build/ts/mod-manager.js -o build/flat/ || exit
2022-08-09 16:33:13 +00:00
# Install
info "Installing..."
2022-08-09 17:56:14 +00:00
rm -rf "$INSTALL_DIR" || exit
mkdir -p "$INSTALL_DIR" || exit
2022-08-09 16:33:13 +00:00
2022-08-09 17:56:14 +00:00
cp -r build/flat/* "$INSTALL_DIR" || exit
2022-08-09 16:33:13 +00:00
# Creating executable
info "Creating executable..."
echo "#!/bin/sh" > $BINARY_PATH || exit
echo "node $INSTALL_DIR/index.js \$@" >> $BINARY_PATH || exit
2022-08-09 17:56:14 +00:00
chmod +x $BINARY_PATH || exit
2022-08-09 16:33:13 +00:00
# Cleaning up
info "Cleaning up..."
2022-08-09 17:56:14 +00:00
rm -rf "$DOWNLOAD_DIR" || exit
2022-08-09 16:33:13 +00:00
success "Successfully installed mod-manager. Try mod-manager -h to learn more!"