provisioning.go 788 B

1234567891011121314151617181920212223242526272829303132
  1. package provisioning
  2. import (
  3. "context"
  4. "path/filepath"
  5. "github.com/grafana/grafana/pkg/services/provisioning/dashboards"
  6. "github.com/grafana/grafana/pkg/services/provisioning/datasources"
  7. ini "gopkg.in/ini.v1"
  8. )
  9. func Init(ctx context.Context, homePath string, cfg *ini.File) error {
  10. datasourcePath := makeAbsolute(cfg.Section("paths").Key("datasources").String(), homePath)
  11. if err := datasources.Provision(datasourcePath); err != nil {
  12. return err
  13. }
  14. dashboardPath := makeAbsolute(cfg.Section("paths").Key("dashboards").String(), homePath)
  15. _, err := dashboards.Provision(ctx, dashboardPath)
  16. if err != nil {
  17. return err
  18. }
  19. return nil
  20. }
  21. func makeAbsolute(path string, root string) string {
  22. if filepath.IsAbs(path) {
  23. return path
  24. }
  25. return filepath.Join(root, path)
  26. }