2026-10-24 16:20:53 +00:00
|
|
|
package consumers_test
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"os"
|
|
|
|
|
"path/filepath"
|
|
|
|
|
|
2026-11-01 14:19:37 +00:00
|
|
|
configkit "go.maximumdirect.net/configkit"
|
2026-10-24 16:20:53 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type workingDirectoryPresetConfig struct {
|
|
|
|
|
Name string `yaml:"name"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func Example_workingDirectoryPreset() {
|
|
|
|
|
original, err := os.Getwd()
|
|
|
|
|
if err != nil {
|
|
|
|
|
fmt.Println(err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
defer func() { _ = os.Chdir(original) }()
|
|
|
|
|
root, err := os.MkdirTemp("", "configkit-working-search-")
|
|
|
|
|
if err != nil {
|
|
|
|
|
fmt.Println(err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
defer os.RemoveAll(root)
|
|
|
|
|
if err := os.Chdir(root); err != nil {
|
|
|
|
|
fmt.Println(err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
if err := os.WriteFile(filepath.Join(root, "service.yml"), []byte("name: example\n"), 0o600); err != nil {
|
|
|
|
|
fmt.Println(err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
result, err := configkit.Load[workingDirectoryPresetConfig](
|
|
|
|
|
configkit.SearchConfig("service", configkit.WorkingDirectory()),
|
|
|
|
|
)
|
|
|
|
|
if err != nil {
|
|
|
|
|
fmt.Println(err)
|
|
|
|
|
return
|
|
|
|
|
}
|
2026-10-27 15:40:22 +00:00
|
|
|
source, _ := result.Source("source-1")
|
|
|
|
|
fmt.Println(result.Config.Name, filepath.Base(source.Path))
|
2026-10-24 16:20:53 +00:00
|
|
|
// Output: example service.yml
|
|
|
|
|
}
|