diff --git a/pkg/files/file.go b/pkg/files/file.go index 8f9f3bfe70a173318196dd630e4093bdf16028d5..0e4d89f7004413b2c2a0ae9eff663cdcfc0ef3a1 100644 --- a/pkg/files/file.go +++ b/pkg/files/file.go @@ -1,9 +1,11 @@ package files import ( + "bytes" "fmt" "io/fs" "strings" + "text/template" "git.perx.ru/perxis/perxis-go/pkg/id" ) @@ -31,6 +33,20 @@ func (f File) Temporary() bool { return strings.HasPrefix(f.ID, TemporaryPrefix) } +func (f *File) SetURLWithTemplate(t *template.Template) error { + if t == nil { + return nil + } + + res := new(bytes.Buffer) + if err := t.Execute(res, f); err != nil { + return err + } + + f.URL = res.String() + return nil +} + func (f File) Fetch(i interface{}) interface{} { p, _ := i.(string) switch p {