util.go 872 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package server
  2. import (
  3. "fmt"
  4. "html/template"
  5. "io"
  6. "path/filepath"
  7. "strings"
  8. )
  9. func serveTemplate(name string, tmpl string, w io.Writer, data interface{}) {
  10. t, err := template.New(name).Parse(tmpl)
  11. if err != nil {
  12. panic(err)
  13. }
  14. if err := t.Execute(w, data); err != nil {
  15. panic(err)
  16. }
  17. }
  18. // getFileName generates a file name based on the existing files in the directory
  19. // if name isn't taken leave it unchanged
  20. // else change name to format "name(number).ext"
  21. func getFileName(newFilename string, fileNamesInTargetDir []string) string {
  22. fileExt := filepath.Ext(newFilename)
  23. fileName := strings.TrimSuffix(newFilename, fileExt)
  24. number := 1
  25. i := 0
  26. for i < len(fileNamesInTargetDir) {
  27. if newFilename == fileNamesInTargetDir[i] {
  28. newFilename = fmt.Sprintf("%s(%v)%s", fileName, number, fileExt)
  29. number++
  30. i = 0
  31. }
  32. i++
  33. }
  34. return newFilename
  35. }