presets.go 1003 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package main
  2. import (
  3. "log"
  4. "strings"
  5. )
  6. type presets map[string]urlOptions
  7. func parsePreset(p presets, presetStr string) {
  8. presetStr = strings.Trim(presetStr, " ")
  9. if len(presetStr) == 0 || strings.HasPrefix(presetStr, "#") {
  10. return
  11. }
  12. parts := strings.Split(presetStr, "=")
  13. if len(parts) != 2 {
  14. log.Fatalf("Invalid preset string: %s", presetStr)
  15. return
  16. }
  17. name := strings.Trim(parts[0], " ")
  18. if len(name) == 0 {
  19. log.Fatalf("Empty preset name: %s", presetStr)
  20. return
  21. }
  22. value := strings.Trim(parts[1], " ")
  23. if len(value) == 0 {
  24. log.Fatalf("Empty preset value: %s", presetStr)
  25. return
  26. }
  27. optsStr := strings.Split(value, "/")
  28. opts, rest := parseURLOptions(optsStr)
  29. if len(rest) > 0 {
  30. log.Fatalf("Invalid preset value: %s", presetStr)
  31. }
  32. p[name] = opts
  33. }
  34. func checkPresets(p presets) {
  35. var po processingOptions
  36. for name, opts := range p {
  37. if err := applyProcessingOptions(&po, opts); err != nil {
  38. log.Fatalf("Error in preset `%s`: %s", name, err)
  39. }
  40. }
  41. }