Some checks failed
CI / Run lints and checks (push) Failing after 47s
CI / Run tests (push) Failing after 1s
CI / Run race tests (push) Failing after 5s
CI / Build CLI docs (push) Has been skipped
CI / Run buf actions (push) Failing after 5s
CodeQL / Analyze (go) (push) Failing after 3s
CodeQL / Analyze (javascript) (push) Failing after 2s
Docker Image Scanners / scanners (push) Failing after 3s
Format / format (push) Failing after 3s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Draft newsletter (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped
52 lines
1.5 KiB
Go
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
|
|
}
|