Skip to content

Instantly share code, notes, and snippets.

@mxvsh
Created January 18, 2025 11:25
Show Gist options
  • Save mxvsh/268704828c5bae90a5a11ed12cfd837f to your computer and use it in GitHub Desktop.
Save mxvsh/268704828c5bae90a5a11ed12cfd837f to your computer and use it in GitHub Desktop.
dex installation script
#!/bin/bash
set -e
REPO="mxvsh/dex"
LATEST=$(curl -s https://api.github.com/repos/$REPO/releases/latest | grep "tag_name" | cut -d '"' -f 4)
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m)
if [[ $OS == "darwin" ]]; then
PLATFORM="apple-darwin"
elif [[ $OS == "linux" ]]; then
PLATFORM="unknown-linux-musl"
else
echo "Unsupported OS: $OS"
exit 1
fi
if [[ $ARCH == "x86_64" ]]; then
ARCH="x86_64"
elif [[ $ARCH == "aarch64" || $ARCH == "arm64" ]]; then
ARCH="aarch64"
else
echo "Unsupported architecture: $ARCH"
exit 1
fi
ASSETS=$(curl -s https://api.github.com/repos/$REPO/releases/latest | grep "browser_download_url" | cut -d '"' -f 4)
TEMP_DIR="/tmp"
INSTALL_DIR="/usr/local/bin"
BINARY_URL=$(echo "$ASSETS" | grep "$ARCH" | grep "$PLATFORM")
FILE_NAME=$(basename $BINARY_URL)
FOLDER_NAME=$(basename $FILE_NAME .tar.gz)
BINARY_NAME="dex"
BINARY_LOCATION="$TEMP_DIR/$FOLDER_NAME/$BINARY_NAME"
echo "Downloading $BINARY_NAME from $BINARY_URL..."
curl -L "$BINARY_URL" -o "$TEMP_DIR/$FILE_NAME"
tar -xzf "$TEMP_DIR/$FILE_NAME" -C "$TEMP_DIR"
rm -f "$TEMP_DIR/$FILE_NAME"
echo "$BINARY_NAME downloaded to $BINARY_LOCATION"
chmod +x "$BINARY_LOCATION"
if [[ $OS == "darwin" ]]; then
xattr -d com.apple.quarantine "$BINARY_LOCATION" || true
fi
echo "Installing $BINARY_NAME to $INSTALL_DIR..."
sudo mv "$BINARY_LOCATION" "$INSTALL_DIR/$BINARY_NAME"
echo "Installation complete. Run '$BINARY_NAME' to get started!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment