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 //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, args []string, logger logging.Logger, os os.OS, osUser user.OSUser, unix unix.Unix,
cli cli.CLI) error { cli cli.CLI) error {
if len(args) > 1 { // cli operation if len(args) > 1 { // cli operation
switch args[1] { switch args[1] {
case "healthcheck": case "healthcheck":
return cli.HealthCheck(background) return cli.HealthCheck(ctx)
case "clientkey": case "clientkey":
return cli.ClientKey(args[2:], os.OpenFile) return cli.ClientKey(args[2:], os.OpenFile)
case "openvpnconfig": case "openvpnconfig":
return cli.OpenvpnConfig(os) return cli.OpenvpnConfig(os)
case "update": case "update":
return cli.Update(args[2:], os) return cli.Update(ctx, args[2:], os)
default: default:
return fmt.Errorf("command %q is unknown", args[1]) return fmt.Errorf("command %q is unknown", args[1])
} }
} }
ctx, cancel := context.WithCancel(background) ctx, cancel := context.WithCancel(ctx)
defer cancel() defer cancel()
const clientTimeout = 15 * time.Second const clientTimeout = 15 * time.Second

View File

@@ -10,7 +10,7 @@ type CLI interface {
ClientKey(args []string, openFile os.OpenFileFunc) error ClientKey(args []string, openFile os.OpenFileFunc) error
HealthCheck(ctx context.Context) error HealthCheck(ctx context.Context) error
OpenvpnConfig(os os.OS) 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{} type cli struct{}

View File

@@ -15,7 +15,7 @@ import (
"github.com/qdm12/golibs/os" "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} options := settings.Updater{CLI: true}
var flushToFile bool var flushToFile bool
flagSet := flag.NewFlagSet("update", flag.ExitOnError) flagSet := flag.NewFlagSet("update", flag.ExitOnError)
@@ -41,7 +41,7 @@ func (c *cli) Update(args []string, os os.OS) error {
if !flushToFile && !options.Stdout { if !flushToFile && !options.Stdout {
return fmt.Errorf("at least one of -file or -stdout must be specified") return fmt.Errorf("at least one of -file or -stdout must be specified")
} }
ctx := context.Background()
const clientTimeout = 10 * time.Second const clientTimeout = 10 * time.Second
httpClient := &http.Client{Timeout: clientTimeout} httpClient := &http.Client{Timeout: clientTimeout}
storage := storage.New(logger, os, constants.ServersData) storage := storage.New(logger, os, constants.ServersData)