Fix: Pass down context to CLI commands

This commit is contained in:
Quentin McGaw
2021-01-30 17:29:27 +00:00
parent 702eafae4c
commit 75fdf7adab
3 changed files with 7 additions and 7 deletions

View File

@@ -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

View File

@@ -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{}

View File

@@ -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)