Fix: Pass down context to CLI commands
This commit is contained in:
@@ -108,24 +108,24 @@ func main() {
|
||||
}
|
||||
|
||||
//nolint:gocognit,gocyclo
|
||||
func _main(background context.Context, buildInfo models.BuildInformation,
|
||||
func _main(ctx context.Context, buildInfo models.BuildInformation,
|
||||
args []string, logger logging.Logger, os os.OS, osUser user.OSUser, unix unix.Unix,
|
||||
cli cli.CLI) error {
|
||||
if len(args) > 1 { // cli operation
|
||||
switch args[1] {
|
||||
case "healthcheck":
|
||||
return cli.HealthCheck(background)
|
||||
return cli.HealthCheck(ctx)
|
||||
case "clientkey":
|
||||
return cli.ClientKey(args[2:], os.OpenFile)
|
||||
case "openvpnconfig":
|
||||
return cli.OpenvpnConfig(os)
|
||||
case "update":
|
||||
return cli.Update(args[2:], os)
|
||||
return cli.Update(ctx, args[2:], os)
|
||||
default:
|
||||
return fmt.Errorf("command %q is unknown", args[1])
|
||||
}
|
||||
}
|
||||
ctx, cancel := context.WithCancel(background)
|
||||
ctx, cancel := context.WithCancel(ctx)
|
||||
defer cancel()
|
||||
|
||||
const clientTimeout = 15 * time.Second
|
||||
|
||||
@@ -10,7 +10,7 @@ type CLI interface {
|
||||
ClientKey(args []string, openFile os.OpenFileFunc) error
|
||||
HealthCheck(ctx context.Context) error
|
||||
OpenvpnConfig(os os.OS) error
|
||||
Update(args []string, os os.OS) error
|
||||
Update(ctx context.Context, args []string, os os.OS) error
|
||||
}
|
||||
|
||||
type cli struct{}
|
||||
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
"github.com/qdm12/golibs/os"
|
||||
)
|
||||
|
||||
func (c *cli) Update(args []string, os os.OS) error {
|
||||
func (c *cli) Update(ctx context.Context, args []string, os os.OS) error {
|
||||
options := settings.Updater{CLI: true}
|
||||
var flushToFile bool
|
||||
flagSet := flag.NewFlagSet("update", flag.ExitOnError)
|
||||
@@ -41,7 +41,7 @@ func (c *cli) Update(args []string, os os.OS) error {
|
||||
if !flushToFile && !options.Stdout {
|
||||
return fmt.Errorf("at least one of -file or -stdout must be specified")
|
||||
}
|
||||
ctx := context.Background()
|
||||
|
||||
const clientTimeout = 10 * time.Second
|
||||
httpClient := &http.Client{Timeout: clientTimeout}
|
||||
storage := storage.New(logger, os, constants.ServersData)
|
||||
|
||||
Reference in New Issue
Block a user