Files
Matri 81c3deb4fa feat: installation script (#14)
* feat: installation script

* fix: rename target file to dify

* chore: move install.sh into .script& empty readme

* fix: rename targe frm dify to dify-plugin
2025-01-22 17:59:20 +08:00

99 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
# Use environment variable VERSION if set, otherwise use default
VERSION=${VERSION:-0.0.1}
# Detect OS and architecture
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m)
# Convert architecture naming
if [ "$ARCH" = "x86_64" ]; then
ARCH="amd64"
elif [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then
ARCH="arm64"
else
echo "Unsupported architecture: $ARCH"
exit 1
fi
# Only allow macOS and Linux
if [ "$OS" != "darwin" ] && [ "$OS" != "linux" ]; then
echo "Unsupported operating system: $OS"
exit 1
fi
# Define download URL and binary name
BINARY_NAME="dify-plugin-$OS-$ARCH"
DOWNLOAD_URL="https://github.com/langgenius/dify-plugin-daemon/releases/download/$VERSION/$BINARY_NAME"
# Set installation directory based on OS
if [ "$OS" = "darwin" ]; then
INSTALL_DIR="$HOME/.local/bin"
mkdir -p "$INSTALL_DIR"
NEED_SUDO=false
else
INSTALL_DIR="/usr/local/bin"
# Check if we have write permission to /usr/local/bin
if [ -w "$INSTALL_DIR" ]; then
NEED_SUDO=false
else
NEED_SUDO=true
fi
fi
# Create temporary directory for download
TMP_DIR=$(mktemp -d)
cd "$TMP_DIR" || exit 1
# Download the binary
echo "Downloading $BINARY_NAME..."
if command -v curl >/dev/null 2>&1; then
curl -L -o "dify-plugin-daemon" "$DOWNLOAD_URL"
elif command -v wget >/dev/null 2>&1; then
wget -O "dify-plugin-daemon" "$DOWNLOAD_URL"
else
echo "Error: Neither curl nor wget is installed"
rm -rf "$TMP_DIR"
exit 1
fi
# Make binary executable
chmod +x "dify-plugin-daemon"
# Install the binary with the new name
if [ "$NEED_SUDO" = true ]; then
echo "Installing to $INSTALL_DIR (requires sudo)..."
sudo mv "dify-plugin-daemon" "$INSTALL_DIR/dify-plugin"
else
echo "Installing to $INSTALL_DIR..."
mv "dify-plugin-daemon" "$INSTALL_DIR/dify-plugin"
fi
# Clean up
rm -rf "$TMP_DIR"
# For macOS, ensure ~/.local/bin is in PATH
if [ "$OS" = "darwin" ]; then
if ! echo "$PATH" | grep -q "$INSTALL_DIR"; then
SHELL_CONFIG=""
if [ -f "$HOME/.zshrc" ]; then
SHELL_CONFIG="$HOME/.zshrc"
elif [ -f "$HOME/.bashrc" ]; then
SHELL_CONFIG="$HOME/.bashrc"
elif [ -f "$HOME/.bash_profile" ]; then
SHELL_CONFIG="$HOME/.bash_profile"
fi
if [ -n "$SHELL_CONFIG" ]; then
echo "export PATH=\"\$PATH:$INSTALL_DIR\"" >> "$SHELL_CONFIG"
echo "Added $INSTALL_DIR to PATH in $SHELL_CONFIG"
echo "Please run: source $SHELL_CONFIG"
else
echo "Please add the following line to your shell configuration file:"
echo "export PATH=\"\$PATH:$INSTALL_DIR\""
fi
fi
fi
echo "Installation completed! The dify plugin daemon has been installed to $INSTALL_DIR/dify-plugin"