|
@@ -1,31 +1,74 @@
|
|
|
+PLATFORMS = darwin linux windows
|
|
|
+ARCHS = amd64 arm64
|
|
|
+BIN_DIR = bin
|
|
|
+CMD_DIR = ./cmd/commandline
|
|
|
+
|
|
|
.PHONY: build
|
|
|
build:
|
|
|
- GOOS=darwin GOARCH=amd64 go build -o bin/dify-plugin-darwin-amd64 ./cmd/commandline
|
|
|
- GOOS=darwin GOARCH=arm64 go build -o bin/dify-plugin-darwin-arm64 ./cmd/commandline
|
|
|
- chmod +x bin/dify-plugin-darwin-amd64
|
|
|
- chmod +x bin/dify-plugin-darwin-arm64
|
|
|
+ @mkdir -p $(BIN_DIR)
|
|
|
+ @for platform in $(PLATFORMS); do \
|
|
|
+ for arch in $(ARCHS); do \
|
|
|
+ if [ "$$platform" = "windows" ]; then \
|
|
|
+ ext=".exe"; \
|
|
|
+ else \
|
|
|
+ ext=""; \
|
|
|
+ fi; \
|
|
|
+ bin_name=dify-plugin-$$platform-$$arch$$ext; \
|
|
|
+ echo "Building $$bin_name"; \
|
|
|
+ GOOS=$$platform GOARCH=$$arch go build -o $(BIN_DIR)/$$bin_name $(CMD_DIR); \
|
|
|
+ if [ "$$platform" != "windows" ]; then chmod +x $(BIN_DIR)/$$bin_name; fi; \
|
|
|
+ done; \
|
|
|
+ done
|
|
|
|
|
|
.PHONY: tarball
|
|
|
tarball: build
|
|
|
- tar -czvf bin/dify-plugin-darwin-amd64.tar.gz -C bin dify-plugin-darwin-amd64
|
|
|
- tar -czvf bin/dify-plugin-darwin-arm64.tar.gz -C bin dify-plugin-darwin-arm64
|
|
|
+ @for platform in $(PLATFORMS); do \
|
|
|
+ for arch in $(ARCHS); do \
|
|
|
+ if [ "$$platform" = "windows" ]; then \
|
|
|
+ ext=".exe"; \
|
|
|
+ archive=$(BIN_DIR)/dify-plugin-$$platform-$$arch.zip; \
|
|
|
+ echo "Creating $$archive"; \
|
|
|
+ zip -j $$archive $(BIN_DIR)/dify-plugin-$$platform-$$arch$$ext; \
|
|
|
+ else \
|
|
|
+ ext=""; \
|
|
|
+ archive=$(BIN_DIR)/dify-plugin-$$platform-$$arch.tar.gz; \
|
|
|
+ echo "Creating $$archive"; \
|
|
|
+ tar -czvf $$archive -C $(BIN_DIR) dify-plugin-$$platform-$$arch$$ext; \
|
|
|
+ fi; \
|
|
|
+ done; \
|
|
|
+ done
|
|
|
|
|
|
.PHONY: sha256
|
|
|
sha256: tarball
|
|
|
- shasum -a 256 bin/dify-plugin-darwin-amd64.tar.gz | awk '{ print $$1 }' > bin/sha256_darwin_amd64
|
|
|
- shasum -a 256 bin/dify-plugin-darwin-arm64.tar.gz | awk '{ print $$1 }' > bin/sha256_darwin_arm64
|
|
|
+ @for platform in $(PLATFORMS); do \
|
|
|
+ for arch in $(ARCHS); do \
|
|
|
+ if [ "$$platform" = "windows" ]; then \
|
|
|
+ archive=$(BIN_DIR)/dify-plugin-$$platform-$$arch.zip; \
|
|
|
+ else \
|
|
|
+ archive=$(BIN_DIR)/dify-plugin-$$platform-$$arch.tar.gz; \
|
|
|
+ fi; \
|
|
|
+ hash_file=$(BIN_DIR)/sha256_$$platform\_$$arch; \
|
|
|
+ echo "Computing SHA256 for $$archive"; \
|
|
|
+ shasum -a 256 $$archive | awk '{ print $$1 }' > $$hash_file; \
|
|
|
+ done; \
|
|
|
+ done
|
|
|
|
|
|
.PHONY: update_formula
|
|
|
update_formula: sha256
|
|
|
- sed -i.bak \
|
|
|
- -e "s/sha256 \"SHA256_DARWIN_AMD64\"/sha256 \"$(shell cat bin/sha256_darwin_amd64)\"/g" \
|
|
|
- -e "s/sha256 \"SHA256_DARWIN_ARM64\"/sha256 \"$(shell cat bin/sha256_darwin_arm64)\"/g" \
|
|
|
- dify.rb
|
|
|
- rm -f dify.rb.bak
|
|
|
+ @cp dify.rb dify.rb.bak
|
|
|
+ @for platform in $(PLATFORMS); do \
|
|
|
+ for arch in $(ARCHS); do \
|
|
|
+ placeholder="SHA256_$$(echo $$platform | tr a-z A-Z)_$$(echo $$arch | tr a-z A-Z)"; \
|
|
|
+ hash=$$(cat $(BIN_DIR)/sha256_$$platform\_$$arch); \
|
|
|
+ echo "Updating formula for $$placeholder"; \
|
|
|
+ sed -i '' "s/sha256 \"$$placeholder\"/sha256 \"$$hash\"/" dify.rb; \
|
|
|
+ done; \
|
|
|
+ done
|
|
|
+ @rm -f dify.rb.bak
|
|
|
|
|
|
.PHONY: clean
|
|
|
clean:
|
|
|
- rm -rf bin/* bin/sha256_*
|
|
|
+ rm -rf $(BIN_DIR)/*
|
|
|
|
|
|
.PHONY: all
|
|
|
-all: update_formula
|
|
|
+all: update_formula
|