mirror of
https://github.com/42wim/matterbridge.git
synced 2024-12-10 19:22:00 -08:00
40 lines
1.5 KiB
Go
40 lines
1.5 KiB
Go
|
package rice
|
||
|
|
||
|
// LocateMethod defines how a box is located.
|
||
|
type LocateMethod int
|
||
|
|
||
|
const (
|
||
|
LocateFS = LocateMethod(iota) // Locate on the filesystem according to package path.
|
||
|
LocateAppended // Locate boxes appended to the executable.
|
||
|
LocateEmbedded // Locate embedded boxes.
|
||
|
LocateWorkingDirectory // Locate on the binary working directory
|
||
|
)
|
||
|
|
||
|
// Config allows customizing the box lookup behavior.
|
||
|
type Config struct {
|
||
|
// LocateOrder defines the priority order that boxes are searched for. By
|
||
|
// default, the package global FindBox searches for embedded boxes first,
|
||
|
// then appended boxes, and then finally boxes on the filesystem. That
|
||
|
// search order may be customized by provided the ordered list here. Leaving
|
||
|
// out a particular method will omit that from the search space. For
|
||
|
// example, []LocateMethod{LocateEmbedded, LocateAppended} will never search
|
||
|
// the filesystem for boxes.
|
||
|
LocateOrder []LocateMethod
|
||
|
}
|
||
|
|
||
|
// FindBox searches for boxes using the LocateOrder of the config.
|
||
|
func (c *Config) FindBox(boxName string) (*Box, error) {
|
||
|
return findBox(boxName, c.LocateOrder)
|
||
|
}
|
||
|
|
||
|
// MustFindBox searches for boxes using the LocateOrder of the config, like
|
||
|
// FindBox does. It does not return an error, instead it panics when an error
|
||
|
// occurs.
|
||
|
func (c *Config) MustFindBox(boxName string) *Box {
|
||
|
box, err := findBox(boxName, c.LocateOrder)
|
||
|
if err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
return box
|
||
|
}
|