浏览代码

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
Matri 6 月之前
父节点
当前提交
81c3deb4fa
共有 2 个文件被更改,包括 100 次插入0 次删除
  1. 99 0
      .script/install.sh
  2. 1 0
      README.md

+ 99 - 0
.script/install.sh

@@ -0,0 +1,99 @@
+#!/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" 

+ 1 - 0
README.md

@@ -1 +1,2 @@
 # Dify Plugin Daemon
+