2023-08-31 16:19:03 +01:00
|
|
|
package share
|
|
|
|
|
|
|
|
|
|
import "context"
|
|
|
|
|
|
|
|
|
|
type NewBackendFunc func(uc *UserConfiguration) (Backend, *VMShareOptions, error)
|
|
|
|
|
|
|
|
|
|
type Backend interface {
|
|
|
|
|
Apply(ctx context.Context, sharePWD string, vc *VMShareContext) (string, error)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var backends = map[string]NewBackendFunc{
|
|
|
|
|
"ftp": NewFTPBackend,
|
|
|
|
|
"smb": NewSMBBackend,
|
2023-09-01 15:15:40 +01:00
|
|
|
"afp": NewAFPBackend,
|
2023-08-31 16:19:03 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Will return nil if no backend is found.
|
|
|
|
|
func GetBackend(id string) NewBackendFunc {
|
|
|
|
|
return backends[id]
|
|
|
|
|
}
|