checksum.go 739 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package basic_runtime
  2. import (
  3. "os"
  4. "github.com/langgenius/dify-plugin-daemon/pkg/plugin_packager/decoder"
  5. )
  6. type BasicChecksum struct {
  7. MediaTransport
  8. WorkingPath string
  9. // plugin decoder used to manage the plugin
  10. Decoder decoder.PluginDecoder
  11. InnerChecksum string
  12. }
  13. func (r *BasicChecksum) calculateChecksum() (string, error) {
  14. checksum, err := r.Decoder.Checksum()
  15. if err != nil {
  16. return "", err
  17. }
  18. return checksum, nil
  19. }
  20. func (r *BasicChecksum) Checksum() (string, error) {
  21. if r.InnerChecksum == "" {
  22. checksum, err := r.calculateChecksum()
  23. if err != nil {
  24. return "", err
  25. }
  26. r.InnerChecksum = checksum
  27. }
  28. return r.InnerChecksum, nil
  29. }
  30. func (r *BasicChecksum) Cleanup() {
  31. os.RemoveAll(r.WorkingPath)
  32. }