Files
upstream-ory-kratos/oryx/configx/helpers.go
upstream-mirror c60cc7ca75
Some checks failed
CI / Run tests and lints (push) Failing after 29s
CI / Build CLI docs (push) Has been skipped
CI / Run Playwright end-to-end tests (mysql) (push) Failing after 3s
CI / Run Playwright end-to-end tests (postgres) (push) Failing after 2s
CI / Run Playwright end-to-end tests (sqlite) (push) Failing after 3s
CodeQL / Analyze (go) (push) Failing after 4s
CodeQL / Analyze (javascript) (push) Failing after 3s
Docker Image Scanners / scanners (push) Failing after 4s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Run end-to-end tests (postgres) (push) Failing after 19s
CI / Run end-to-end tests (sqlite) (push) Failing after 2s
CI / Run Playwright end-to-end tests (cockroach) (push) Failing after 2s
CI / Draft newsletter (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped
snapshot of https://github.com/ory/kratos.git (master, 2026-09-15; blobs > 131072B omitted)
2026-09-15 21:19:12 +05:00

52 lines
1.5 KiB
Go

// Copyright © 2023 Ory Corp
// SPDX-License-Identifier: Apache-2.0
package configx
import (
"bytes"
"fmt"
"io"
"strings"
"github.com/spf13/pflag"
)
// RegisterFlags registers the config file flag.
func RegisterFlags(flags *pflag.FlagSet) {
flags.StringSliceP("config", "c", []string{}, "Path to one or more .json, .yaml, .yml, .toml config files. Values are loaded in the order provided, meaning that the last config file overwrites values from the previous config file.")
}
// host = unix:/path/to/socket => port is discarded, otherwise format as host:port
func GetAddress(host string, port int) string {
if strings.HasPrefix(host, "unix:") {
return host
}
return fmt.Sprintf("%s:%d", host, port)
}
func (s *Serve) GetAddress() string {
return GetAddress(s.Host, s.Port)
}
// AddSchemaResources adds the config schema partials to the compiler.
// The interface is specified instead of `jsonschema.Compiler` to allow the use of any jsonschema library fork or version.
func AddSchemaResources(c interface {
AddResource(url string, r io.Reader) error
}) error {
if err := c.AddResource(TLSConfigSchemaID, bytes.NewReader(TLSConfigSchema)); err != nil {
return err
}
if err := c.AddResource(ServeConfigSchemaID, bytes.NewReader(ServeConfigSchema)); err != nil {
return err
}
return c.AddResource(CORSConfigSchemaID, bytes.NewReader(CORSConfigSchema))
}
func cleanPrefix(prefix string) string {
if len(prefix) > 0 {
prefix = strings.TrimRight(prefix, ".") + "."
}
return prefix
}