mirror of
https://github.com/caddyserver/caddy.git
synced 2025-08-07 09:04:04 -04:00
cmd: Allow caddy adapt
to read from stdin (#7163)
Some checks failed
Tests / test (./cmd/caddy/caddy, ~1.24.1, ubuntu-latest, 0, 1.24, linux) (push) Failing after 2m55s
Tests / test (s390x on IBM Z) (push) Has been skipped
Tests / goreleaser-check (push) Has been skipped
Cross-Build / build (~1.24.1, 1.24, aix) (push) Successful in 1m31s
Cross-Build / build (~1.24.1, 1.24, darwin) (push) Successful in 1m31s
Cross-Build / build (~1.24.1, 1.24, dragonfly) (push) Successful in 1m33s
Cross-Build / build (~1.24.1, 1.24, freebsd) (push) Successful in 1m34s
Cross-Build / build (~1.24.1, 1.24, illumos) (push) Successful in 1m34s
Cross-Build / build (~1.24.1, 1.24, linux) (push) Successful in 1m39s
Cross-Build / build (~1.24.1, 1.24, netbsd) (push) Successful in 1m36s
Cross-Build / build (~1.24.1, 1.24, openbsd) (push) Successful in 1m34s
Cross-Build / build (~1.24.1, 1.24, solaris) (push) Successful in 1m35s
Cross-Build / build (~1.24.1, 1.24, windows) (push) Successful in 1m33s
Lint / lint (ubuntu-latest, linux) (push) Successful in 2m29s
Lint / govulncheck (push) Successful in 1m48s
Lint / dependency-review (push) Failing after 59s
OpenSSF Scorecard supply-chain security / Scorecard analysis (push) Has started running
Tests / test (./cmd/caddy/caddy, ~1.24.1, macos-14, 0, 1.24, mac) (push) Has been cancelled
Tests / test (./cmd/caddy/caddy.exe, ~1.24.1, windows-latest, True, 1.24, windows) (push) Has been cancelled
Lint / lint (macos-14, mac) (push) Has been cancelled
Lint / lint (windows-latest, windows) (push) Has been cancelled
Some checks failed
Tests / test (./cmd/caddy/caddy, ~1.24.1, ubuntu-latest, 0, 1.24, linux) (push) Failing after 2m55s
Tests / test (s390x on IBM Z) (push) Has been skipped
Tests / goreleaser-check (push) Has been skipped
Cross-Build / build (~1.24.1, 1.24, aix) (push) Successful in 1m31s
Cross-Build / build (~1.24.1, 1.24, darwin) (push) Successful in 1m31s
Cross-Build / build (~1.24.1, 1.24, dragonfly) (push) Successful in 1m33s
Cross-Build / build (~1.24.1, 1.24, freebsd) (push) Successful in 1m34s
Cross-Build / build (~1.24.1, 1.24, illumos) (push) Successful in 1m34s
Cross-Build / build (~1.24.1, 1.24, linux) (push) Successful in 1m39s
Cross-Build / build (~1.24.1, 1.24, netbsd) (push) Successful in 1m36s
Cross-Build / build (~1.24.1, 1.24, openbsd) (push) Successful in 1m34s
Cross-Build / build (~1.24.1, 1.24, solaris) (push) Successful in 1m35s
Cross-Build / build (~1.24.1, 1.24, windows) (push) Successful in 1m33s
Lint / lint (ubuntu-latest, linux) (push) Successful in 2m29s
Lint / govulncheck (push) Successful in 1m48s
Lint / dependency-review (push) Failing after 59s
OpenSSF Scorecard supply-chain security / Scorecard analysis (push) Has started running
Tests / test (./cmd/caddy/caddy, ~1.24.1, macos-14, 0, 1.24, mac) (push) Has been cancelled
Tests / test (./cmd/caddy/caddy.exe, ~1.24.1, windows-latest, True, 1.24, windows) (push) Has been cancelled
Lint / lint (macos-14, mac) (push) Has been cancelled
Lint / lint (windows-latest, windows) (push) Has been cancelled
This commit is contained in:
parent
007f4066f6
commit
19ff47a63b
@ -441,16 +441,20 @@ func cmdEnviron(fl Flags) (int, error) {
|
||||
}
|
||||
|
||||
func cmdAdaptConfig(fl Flags) (int, error) {
|
||||
inputFlag := fl.String("config")
|
||||
configFlag := fl.String("config")
|
||||
adapterFlag := fl.String("adapter")
|
||||
prettyFlag := fl.Bool("pretty")
|
||||
validateFlag := fl.Bool("validate")
|
||||
|
||||
var err error
|
||||
inputFlag, err = configFileWithRespectToDefault(caddy.Log(), inputFlag)
|
||||
configFlag, err = configFileWithRespectToDefault(caddy.Log(), configFlag)
|
||||
if err != nil {
|
||||
return caddy.ExitCodeFailedStartup, err
|
||||
}
|
||||
if configFlag == "" {
|
||||
return caddy.ExitCodeFailedStartup,
|
||||
fmt.Errorf("input file required when there is no Caddyfile in current directory (use --config flag)")
|
||||
}
|
||||
|
||||
// load all additional envs as soon as possible
|
||||
err = handleEnvFileFlag(fl)
|
||||
@ -469,13 +473,19 @@ func cmdAdaptConfig(fl Flags) (int, error) {
|
||||
fmt.Errorf("unrecognized config adapter: %s", adapterFlag)
|
||||
}
|
||||
|
||||
input, err := os.ReadFile(inputFlag)
|
||||
var input []byte
|
||||
// read from stdin if the file name is "-"
|
||||
if configFlag == "-" {
|
||||
input, err = io.ReadAll(os.Stdin)
|
||||
} else {
|
||||
input, err = os.ReadFile(configFlag)
|
||||
}
|
||||
if err != nil {
|
||||
return caddy.ExitCodeFailedStartup,
|
||||
fmt.Errorf("reading input file: %v", err)
|
||||
}
|
||||
|
||||
opts := map[string]any{"filename": inputFlag}
|
||||
opts := map[string]any{"filename": configFlag}
|
||||
|
||||
adaptedConfig, warnings, err := cfgAdapter.Adapt(input, opts)
|
||||
if err != nil {
|
||||
|
@ -293,6 +293,8 @@ zero exit status will be returned.
|
||||
|
||||
If --envfile is specified, an environment file with environment variables
|
||||
in the KEY=VALUE format will be loaded into the Caddy process.
|
||||
|
||||
If you wish to use stdin instead of a regular file, use - as the path.
|
||||
`,
|
||||
CobraFunc: func(cmd *cobra.Command) {
|
||||
cmd.Flags().StringP("config", "c", "", "Configuration file to adapt (required)")
|
||||
@ -390,7 +392,7 @@ lines will be prefixed with '-' and '+' where they differ. Note that
|
||||
unchanged lines are prefixed with two spaces for alignment, and that this
|
||||
is not a valid patch format.
|
||||
|
||||
If you wish you use stdin instead of a regular file, use - as the path.
|
||||
If you wish to use stdin instead of a regular file, use - as the path.
|
||||
When reading from stdin, the --overwrite flag has no effect: the result
|
||||
is always printed to stdout.
|
||||
`,
|
||||
|
Loading…
x
Reference in New Issue
Block a user