diff --git a/cmd_root.go b/cmd_root.go index 95c598d..217e685 100644 --- a/cmd_root.go +++ b/cmd_root.go @@ -65,7 +65,17 @@ func LoadProviders(cfgFile, appName string, providers container.Providers) error type Option func(*cobra.Command) -var AppName string +var ( + AppName string + AppVersion string +) + +func Version(ver string) Option { + return func(cmd *cobra.Command) { + cmd.Version = ver + AppVersion = ver + } +} func Name(name string) Option { return func(cmd *cobra.Command) { diff --git a/container/container.go b/container/container.go index 45e0cb9..423b61a 100644 --- a/container/container.go +++ b/container/container.go @@ -3,6 +3,7 @@ package container import ( "context" "log" + "os" "os/signal" "syscall" @@ -20,7 +21,8 @@ var ( func init() { closeable = make([]func(), 0) if err := Container.Provide(func() context.Context { - ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT) + signals := []os.Signal{syscall.SIGTERM, syscall.SIGINT, syscall.SIGQUIT, syscall.SIGKILL} + ctx, cancel := signal.NotifyContext(context.Background(), signals...) go func() { <-ctx.Done() Close()