Skip to content

Commit

Permalink
Add EnvFlag util (#378)
Browse files Browse the repository at this point in the history
  • Loading branch information
artemklevtsov authored Sep 16, 2023
1 parent 074ccd0 commit 1e6f15f
Showing 1 changed file with 35 additions and 1 deletion.
36 changes: 35 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,40 @@ func main() {
}
```

Another example of using hooks is load the env-file:

```go
package main

import (
"fmt"
"github.com/alecthomas/kong"
"github.com/joho/godotenv"
)

type EnvFlag string

// BeforeResolve loads env file.
func (c EnvFlag) BeforeReset(ctx *kong.Context, trace *kong.Path) error {
path := string(ctx.FlagValue(trace.Flag).(EnvFlag)) // nolint
path = kong.ExpandPath(path)
if err := godotenv.Load(path); err != nil {
return err
}
return nil
}

var CLI struct {
EnvFile EnvFlag
Flag `env:"FLAG"`
}

func main() {
_ = kong.Parse(&CLI)
fmt.Println(CLI.Flag)
}
```

## Flags

Any [mapped](#mapper---customising-how-the-command-line-is-mapped-to-go-values) field in the command structure *not* tagged with `cmd` or `arg` will be a flag. Flags are optional by default.
Expand Down Expand Up @@ -704,4 +738,4 @@ See the [section on hooks](#hooks-beforeresolve-beforeapply-afterapply-and-the-b
### Other options
The full set of options can be found [here](https://godoc.org/github.com/alecthomas/kong#Option).
The full set of options can be found [here](https://godoc.org/github.com/alecthomas/kong#Option).

0 comments on commit 1e6f15f

Please sign in to comment.