Compare commits

...

6 commits
v0.0.3 ... main

Author SHA1 Message Date
Foil-hat-guy
35432e184a
Fixed some typos. 2025-04-22 19:31:09 +03:00
Foil-hat-guy
b942c67d8e
README.md finalized. 2025-04-22 19:27:36 +03:00
Foil-hat-guy
4a628ccc7e
README.md updated. 2025-04-21 22:47:04 +03:00
Foil-hat-guy
e0a8e22fea
Defining function inside init to avoid interference with another packages. 2025-04-21 22:33:24 +03:00
Foil-hat-guy
b895c86fab
New condition in the flagIsSet function. 2025-04-21 22:23:06 +03:00
Foil-hat-guy
bebebac341
Fixed condition in the flagIsSet function. 2025-04-21 22:15:10 +03:00
2 changed files with 28 additions and 25 deletions

View file

@ -1,15 +1,14 @@
### The "Version" package
### The "Help" package
This package provides --version flag feature to your cli.
It recognize both short and long flags. Version number is
automatically added from the latest tag in your git repository.
This package provides --help flag feature to your cli.
It recognize both short and long flags.
-------------
### Usage
1. Download the package by **go get** command:
```shell
go get code.foilhatguy.casa/pub/version
go get code.foilhatguy.casa/pub/help
```
2. Add the package as a tool dependency to your project in
tools.go:
@ -19,23 +18,28 @@ tools.go:
package tools
import (
_ "code.foilhatguy.casa/pub/version"
_ "code.foilhatguy.casa/pub/help"
)
```
3. In the main package add a go:generate directive:
```go
//go:generate go run code.foilhatguy.casa/pub/version
//go:generate go run code.foilhatguy.casa/pub/help HELP.md
```
The last part in this directive is a name of the help file for
your application. It should be placed in the root directory
of your project along with **main.go** file. The help file
can be written ether in the MarkDown format, or in plain text.
MarkDown will be automatically converted in to plain text,
which is suitable for the console output.
4. Run code generator by **go generate** command:
```shell
go generate ./...
```
The package will detect a version number from the latest git
tag from your project. Then it will generate a **version.go**
file as a part of the main package. It will contain a version
number as a constant and code for --version flag detection.
The package will generate a **help.go** file as a part of
the main package. It will contain code for --help flag detection.
5. Build and run your application with the --version flag.
5. Build and run your application with the --help flag.
```shell
go run . --version
go run . --help
```

View file

@ -22,7 +22,9 @@ import (
//go:embed help
var goFS embed.FS
func flagIsSet(arg string, sfortFlag string) bool {
func init() {
flagIsSet := func(arg string, sfortFlag string) bool {
arg = strings.Split(arg, "=")[0]
if len(arg)>1 {
if arg[0] == "-"[0] && arg[1] != "-"[0] {
return strings.Contains(arg, sfortFlag)
@ -31,7 +33,6 @@ func flagIsSet(arg string, sfortFlag string) bool {
return false
}
func init() {
help, err := goFS.ReadFile("help")
if err != nil {
fmt.Println(err)
@ -39,8 +40,6 @@ func init() {
}
for _, arg := range os.Args {
fmt.Println(flagIsSet(arg, "h"))
fmt.Println(arg == "--help")
if flagIsSet(arg, "h") || arg == "--help" {
fmt.Println(string(help))
os.Exit(0)