Allow installer to work directly without saving
This commit is contained in:
150
installer.sh
150
installer.sh
@@ -1,84 +1,92 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
BINARY_NAME="crib"
|
||||
VERSION="v0.0.1-alpha"
|
||||
shopt -s extglob
|
||||
set -o errtrace
|
||||
set -o errexit
|
||||
set -o pipefail
|
||||
|
||||
if [ -z "$RUBY_VERSION" ]; then
|
||||
if ldconfig -p | grep -q libruby.so.3.4; then
|
||||
HAVE_34=1
|
||||
fi
|
||||
if ldconfig -p | grep -q libruby-3.2.so; then
|
||||
HAVE_32=1
|
||||
fi
|
||||
install() {
|
||||
BINARY_NAME="crib"
|
||||
VERSION="v0.0.1-alpha"
|
||||
|
||||
if [ "$HAVE_34" = "1" ] && [ "$HAVE_32" = "1" ]; then
|
||||
echo "Multiple Ruby versions detected."
|
||||
echo "Select Ruby ABI:"
|
||||
echo " 1) Ruby 3.4"
|
||||
echo " 2) Ruby 3.2"
|
||||
read -r choice
|
||||
case "$choice" in
|
||||
1) RUBY_VERSION="3.4" ;;
|
||||
2) RUBY_VERSION="3.2" ;;
|
||||
*)
|
||||
echo "Invalid choice"
|
||||
if [ -z "$RUBY_VERSION" ]; then
|
||||
if ldconfig -p | grep -q libruby.so.3.4; then
|
||||
HAVE_34=1
|
||||
fi
|
||||
if ldconfig -p | grep -q libruby-3.2.so; then
|
||||
HAVE_32=1
|
||||
fi
|
||||
|
||||
if [ "$HAVE_34" = "1" ] && [ "$HAVE_32" = "1" ]; then
|
||||
echo "Multiple Ruby versions detected."
|
||||
echo "Select Ruby ABI:"
|
||||
echo " 1) Ruby 3.4"
|
||||
echo " 2) Ruby 3.2"
|
||||
read -r choice
|
||||
case "$choice" in
|
||||
1) RUBY_VERSION="3.4" ;;
|
||||
2) RUBY_VERSION="3.2" ;;
|
||||
*)
|
||||
echo "Invalid choice"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
elif [ "$HAVE_34" = "1" ]; then
|
||||
RUBY_VERSION="3.4"
|
||||
elif [ "$HAVE_32" = "1" ]; then
|
||||
RUBY_VERSION="3.2"
|
||||
else
|
||||
echo "No compatible Ruby library found need Ruby 3.2 or 3.4."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
elif [ "$HAVE_34" = "1" ]; then
|
||||
RUBY_VERSION="3.4"
|
||||
elif [ "$HAVE_32" = "1" ]; then
|
||||
RUBY_VERSION="3.2"
|
||||
else
|
||||
echo "No compatible Ruby library found need Ruby 3.2 or 3.4."
|
||||
fi
|
||||
fi
|
||||
|
||||
GITHUB_URL="https://github.com/SyedM-dev/crib/releases/download/$VERSION/crib-linux-x86_64-ruby$RUBY_VERSION"
|
||||
|
||||
missing=()
|
||||
command -v ruby >/dev/null 2>&1 || missing+=("ruby")
|
||||
ldconfig -p | grep libmagic >/dev/null 2>&1 || missing+=("libmagic")
|
||||
|
||||
if [ ${#missing[@]} -ne 0 ]; then
|
||||
echo "Missing dependencies: ${missing[*]}"
|
||||
echo "Install them using your package manager:"
|
||||
echo "Ubuntu/Debian: sudo apt install ruby libmagic1"
|
||||
echo "Arch: sudo pacman -S ruby file"
|
||||
echo "Void: sudo xbps-install -Sy ruby file"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
GITHUB_URL="https://github.com/SyedM-dev/crib/releases/download/$VERSION/crib-linux-x86_64-ruby$RUBY_VERSION"
|
||||
echo "Installing Crib (Ruby $RUBY_VERSION)"
|
||||
|
||||
missing=()
|
||||
command -v ruby >/dev/null 2>&1 || missing+=("ruby")
|
||||
ldconfig -p | grep libmagic >/dev/null 2>&1 || missing+=("libmagic")
|
||||
echo "Install locally ~/.local/bin or globally /usr/bin? [l/g]"
|
||||
read -r choice
|
||||
case "$choice" in
|
||||
l | L)
|
||||
INSTALL_DIR="$HOME/.local/bin"
|
||||
SUDO=""
|
||||
;;
|
||||
g | G)
|
||||
INSTALL_DIR="/usr/bin"
|
||||
SUDO="sudo"
|
||||
;;
|
||||
*)
|
||||
echo "Invalid choice"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ ${#missing[@]} -ne 0 ]; then
|
||||
echo "Missing dependencies: ${missing[*]}"
|
||||
echo "Install them using your package manager:"
|
||||
echo "Ubuntu/Debian: sudo apt install ruby libmagic1"
|
||||
echo "Arch: sudo pacman -S ruby file"
|
||||
echo "Void: sudo xbps-install -Sy ruby file"
|
||||
exit 1
|
||||
fi
|
||||
$SUDO mkdir -p "$INSTALL_DIR"
|
||||
|
||||
echo "Installing Crib (Ruby $RUBY_VERSION)"
|
||||
echo "Downloading binary..."
|
||||
curl -L "$GITHUB_URL" -o /tmp/"$BINARY_NAME"
|
||||
$SUDO install -m 755 /tmp/"$BINARY_NAME" "$INSTALL_DIR/$BINARY_NAME"
|
||||
rm -f /tmp/"$BINARY_NAME"
|
||||
|
||||
echo "Install locally ~/.local/bin or globally /usr/bin? [l/g]"
|
||||
read -r choice
|
||||
case "$choice" in
|
||||
(l | L)
|
||||
INSTALL_DIR="$HOME/.local/bin"
|
||||
SUDO=""
|
||||
;;
|
||||
(g | G)
|
||||
INSTALL_DIR="/usr/bin"
|
||||
SUDO="sudo"
|
||||
;;
|
||||
(*)
|
||||
echo "Invalid choice"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
echo
|
||||
echo "✔ Crib installed to $INSTALL_DIR"
|
||||
echo "Run with: $BINARY_NAME"
|
||||
echo "Ruby ABI: $RUBY_VERSION"
|
||||
echo "Add $INSTALL_DIR to PATH if needed."
|
||||
}
|
||||
|
||||
$SUDO mkdir -p "$INSTALL_DIR"
|
||||
|
||||
echo "Downloading binary..."
|
||||
curl -L "$GITHUB_URL" -o /tmp/"$BINARY_NAME"
|
||||
$SUDO install -m 755 /tmp/"$BINARY_NAME" "$INSTALL_DIR/$BINARY_NAME"
|
||||
rm -f /tmp/"$BINARY_NAME"
|
||||
|
||||
echo
|
||||
echo "✔ Crib installed to $INSTALL_DIR"
|
||||
echo "Run with: $BINARY_NAME"
|
||||
echo "Ruby ABI: $RUBY_VERSION"
|
||||
echo "Add $INSTALL_DIR to PATH if needed."
|
||||
install "$@"
|
||||
|
||||
Reference in New Issue
Block a user