environment.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package local_manager
  2. import (
  3. "fmt"
  4. "os"
  5. "path"
  6. "github.com/langgenius/dify-plugin-daemon/internal/types/entities/constants"
  7. "github.com/langgenius/dify-plugin-daemon/internal/types/entities/plugin_entities"
  8. )
  9. func (r *LocalPluginRuntime) InitEnvironment() error {
  10. if _, err := os.Stat(path.Join(r.State.AbsolutePath, ".installed")); err == nil {
  11. return nil
  12. }
  13. var err error
  14. if r.Config.Meta.Runner.Language == constants.Python {
  15. err = r.InitPythonEnvironment()
  16. } else {
  17. return fmt.Errorf("unsupported language: %s", r.Config.Meta.Runner.Language)
  18. }
  19. if err != nil {
  20. return err
  21. }
  22. // create .installed file
  23. f, err := os.Create(path.Join(r.State.AbsolutePath, ".installed"))
  24. if err != nil {
  25. return err
  26. }
  27. defer f.Close()
  28. return nil
  29. }
  30. func (r *LocalPluginRuntime) Identity() (plugin_entities.PluginUniqueIdentifier, error) {
  31. checksum, err := r.Checksum()
  32. if err != nil {
  33. return "", err
  34. }
  35. return plugin_entities.PluginUniqueIdentifier(fmt.Sprintf("%s@%s", r.Config.Identity(), checksum)), nil
  36. }