Pull request 1897: nextapi-write-conf

Squashed commit of the following:

commit 72f25ffe73d6b8216b01e590fba66fb5f6944113
Author: Ainar Garipov <A.Garipov@AdGuard.COM>
Date:   Wed Jun 28 21:29:04 2023 +0300

    next: add conf writing, validation
This commit is contained in:
Ainar Garipov
2023-06-29 14:34:06 +03:00
parent 2069eddf98
commit d4a4bda645
10 changed files with 232 additions and 37 deletions

View File

@@ -8,6 +8,7 @@ import (
"os"
"strings"
"github.com/AdguardTeam/AdGuardHome/internal/next/configmgr"
"github.com/AdguardTeam/AdGuardHome/internal/version"
"golang.org/x/exp/slices"
)
@@ -55,9 +56,8 @@ type options struct {
webAddrs []netip.AddrPort
// checkConfig, if true, instructs AdGuard Home to check the configuration
// file and exit with a corresponding exit code.
//
// TODO(a.garipov): Use.
// file, optionally print an error message to stdout, and exit with a
// corresponding exit code.
checkConfig bool
// disableUpdate, if true, prevents AdGuard Home from automatically checking
@@ -183,7 +183,7 @@ var commandLineOptions = []*commandLineOption{
checkConfigIdx: {
defaultValue: false,
description: "Check configuration and quit.",
description: "Check configuration, print errors to stdout, and quit.",
long: "check-config",
short: "",
valueType: "",
@@ -399,5 +399,16 @@ func processOptions(
return 0, true
}
if opts.checkConfig {
err := configmgr.Validate(opts.confFile)
if err != nil {
_, _ = io.WriteString(os.Stdout, err.Error()+"\n")
return 1, true
}
return 0, true
}
return 0, false
}