legit

Fork of https://git.icyphox.sh/legit

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
// This package exposes embedded resources across modules.
// A dedicated module is necessary due to Go's restriction on "embed" package
// cannot embed resources on parent directories (and Go not allowing circular
// dependencies.)
//
// Copyright 2025 Shota FUJI <pockawoooh@gmail.com>
// SPDX-License-Identifier: MIT

package embed

import (
	"embed"
	"io/fs"
)

//go:embed static/*
var defaultStaticDir embed.FS

//go:embed templates/*
var defaultTemplatesDir embed.FS

// StaticDir returns embedded default static contents directory.
func StaticDir() fs.FS {
	// Go cannot embed directory as-is. Stripping the subdirectory.
	f, err := fs.Sub(defaultStaticDir, "static")
	if err != nil {
		panic("static/ directory not embedded correctly")
	}

	return f
}

// TemplatesDir returns embedded default templates directory.
func TemplatesDir() fs.FS {
	// Go cannot embed directory as-is. Stripping the subdirectory.
	f, err := fs.Sub(defaultTemplatesDir, "templates")
	if err != nil {
		panic("templates/ directory not embedded correctly")
	}

	return f
}