forked from rosa/hakurei
internal/rosa: read-only access to built-ins
This removes potential footguns caused by mutable builtins without requiring unnecessary clones. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
+4
-12
@@ -624,33 +624,25 @@ func (attr *GenericHelper) script(t Toolchain, _ string) string {
|
||||
return script
|
||||
}
|
||||
|
||||
// native contains natively-implemented and built-in azalea-based [Artifact].
|
||||
// It is generally recommended to clone this instance for custom [Artifact]
|
||||
// registrations.
|
||||
var native S
|
||||
|
||||
// Native returns the global [S].
|
||||
func Native() *S { return &native }
|
||||
|
||||
// parseTime is the duration of early parsing of built-in azalea expressions.
|
||||
var parseTime time.Duration
|
||||
|
||||
// ParseTime returns the time taken by early parsing of built-in azalea expressions.
|
||||
func ParseTime() time.Duration { return parseTime }
|
||||
|
||||
// nativeB is the backing directory of built-in azalea-based [Artifact]
|
||||
// builtinAzalea is the backing directory of built-in azalea-based [Artifact]
|
||||
// implementations.
|
||||
//
|
||||
//go:embed package
|
||||
var nativeB embed.FS
|
||||
var builtinAzalea embed.FS
|
||||
|
||||
func init() {
|
||||
sub, err := fs.Sub(nativeB, "package")
|
||||
sub, err := fs.Sub(builtinAzalea, "package")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
t := time.Now()
|
||||
if err = native.RegisterFS(sub); err != nil {
|
||||
if err = builtin.RegisterFS(sub); err != nil {
|
||||
println(err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user