浏览代码

feat: homebrew

crazywoola 8 月之前
父节点
当前提交
f2c2ede2ad
共有 5 个文件被更改,包括 110 次插入1 次删除
  1. 2 1
      .gitignore
  2. 41 0
      Makefile
  3. 9 0
      README.md
  4. 26 0
      dify.rb
  5. 32 0
      docs/build_homebrew.md

+ 2 - 1
.gitignore

@@ -10,4 +10,5 @@ __pycache__
 media-cache
 subprocesses
 working
-cwd/
+cwd/
+bin/

+ 41 - 0
Makefile

@@ -0,0 +1,41 @@
+# Makefile for building dify-plugin
+OS := darwin
+ARCHS := amd64 arm64
+BIN_DIR := bin
+CMD_DIR := ./cmd/commandline
+TAR_EXT := tar.gz
+
+.PHONY: build
+build:
+	@for arch in $(ARCHS); do \
+		GOOS=$(OS) GOARCH=$$arch go build -o $(BIN_DIR)/dify-plugin-$(OS)-$$arch $(CMD_DIR); \
+		chmod +x $(BIN_DIR)/dify-plugin-$(OS)-$$arch; \
+	done
+
+.PHONY: tarball
+tarball: build
+	@for arch in $(ARCHS); do \
+		tar -czvf $(BIN_DIR)/dify-plugin-$(OS)-$$arch.$(TAR_EXT) -C $(BIN_DIR) dify-plugin-$(OS)-$$arch; \
+	done
+
+.PHONY: sha256
+sha256: tarball
+	@for arch in $(ARCHS); do \
+		shasum -a 256 $(BIN_DIR)/dify-plugin-$(OS)-$$arch.$(TAR_EXT) | awk '{ print $$1 }' > $(BIN_DIR)/sha256_$(OS)_$$arch; \
+	done
+
+.PHONY: update_formula
+update_formula: sha256
+	@for arch in $(ARCHS); do \
+		sed -i.bak \
+			-e "s/sha256 \"SHA256_$(OS)_$${arch^^}\"/sha256 \"$(shell cat $(BIN_DIR)/sha256_$(OS)_$$arch)\"/g" \
+			dify.rb; \
+	done
+	rm -f dify.rb.bak
+
+.PHONY: clean
+clean:
+	rm -rf $(BIN_DIR)/* $(BIN_DIR)/sha256_*
+
+.PHONY: all
+all: update_formula

+ 9 - 0
README.md

@@ -0,0 +1,9 @@
+# Dify Plugin Daemon
+
+## Description
+
+## Installation
+
+```bash
+brew install --build-from-source ./dify.rb
+```

+ 26 - 0
dify.rb

@@ -0,0 +1,26 @@
+class Dify < Formula
+  desc "Dify Plugin Command Line Tool"
+  homepage "https://github.com/langgenius/dify-plugin-daemon"
+  version "0.1.0"
+  license "MIT"
+
+  if OS.mac? && Hardware::CPU.intel?
+    url "file://#{__dir__}/bin/dify-plugin-darwin-amd64.tar.gz"
+    sha256 "3b0172bfdaf19396a855974b6f83e03a86ce2a073615cd7d6fbbb104c3d96946"
+  elsif OS.mac? && Hardware::CPU.arm?
+    url "file://#{__dir__}/bin/dify-plugin-darwin-arm64.tar.gz"
+    sha256 "8a527f7bc61046aa11992d76cc2e3fe2a2c38cf3434d882273fcba30dd3a2e00"
+  end
+
+  def install
+    if Hardware::CPU.intel?
+      bin.install "dify-plugin-darwin-amd64" => "dify"
+    else
+      bin.install "dify-plugin-darwin-arm64" => "dify"
+    end
+  end
+
+  test do
+    system "#{bin}/dify", "--version"
+  end
+end

+ 32 - 0
docs/build_homebrew.md

@@ -0,0 +1,32 @@
+# Build homebrew
+
+## Intallation
+
+### Install homebrew
+
+```bash
+/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
+
+brew version
+```
+
+### Build CLI tool
+
+```bash
+# Build the CLI tool from source
+make build 
+# Generate the sha256 checksum
+make sha256 
+# Update the formula with the new sha256 checksum
+make update_formula
+# Clean the build
+make clean
+# Execute all the above commands
+make all 
+```
+
+### Install CLI tool
+
+```bash
+brew install --build-from-source ./dify.rb
+```