main.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package main
  2. import (
  3. "flag"
  4. "os"
  5. "github.com/langgenius/dify-plugin-daemon/internal/core/plugin_packager/decoder"
  6. "github.com/langgenius/dify-plugin-daemon/internal/core/plugin_packager/packager"
  7. "github.com/langgenius/dify-plugin-daemon/internal/utils/log"
  8. )
  9. func main() {
  10. var (
  11. in_path string
  12. out_path string
  13. help bool
  14. )
  15. flag.StringVar(&in_path, "in", "", "directory of plugin to be packaged")
  16. flag.StringVar(&out_path, "out", "", "package output path")
  17. flag.BoolVar(&help, "help", false, "show help")
  18. flag.Parse()
  19. if help || in_path == "" || out_path == "" {
  20. flag.PrintDefaults()
  21. os.Exit(0)
  22. }
  23. decoder, err := decoder.NewFSPluginDecoder(in_path)
  24. if err != nil {
  25. log.Panic("failed to create plugin decoder , plugin path: %s, error: %v", in_path, err)
  26. }
  27. packager := packager.NewPackager(decoder)
  28. zipFile, err := packager.Pack()
  29. if err != nil {
  30. log.Panic("failed to package plugin %v", err)
  31. }
  32. err = os.WriteFile(out_path, zipFile, 0644)
  33. if err != nil {
  34. log.Panic("failed to write package file %v", err)
  35. }
  36. log.Info("plugin packaged successfully, output path: %s", out_path)
  37. }