41 lines
1 KiB
Markdown
41 lines
1 KiB
Markdown
![]() |
### The "Version" 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.
|
||
|
|
||
|
-------------
|
||
|
|
||
|
### Usage
|
||
|
1. Download the package by **go get** command:
|
||
|
```shell
|
||
|
go get code.foilhatguy.casa/pub/version
|
||
|
```
|
||
|
2. Add the package as a tool dependency to your project in
|
||
|
tools.go:
|
||
|
```go
|
||
|
// +build tools
|
||
|
|
||
|
package tools
|
||
|
|
||
|
import (
|
||
|
_ "code.foilhatguy.casa/pub/version"
|
||
|
)
|
||
|
```
|
||
|
3. In the main package add a go:generate directive:
|
||
|
```go
|
||
|
//go:generate go run code.foilhatguy.casa/pub/version
|
||
|
```
|
||
|
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.
|
||
|
|
||
|
5. Build and run your application with the --version flag.
|
||
|
```shell
|
||
|
go run . --version
|
||
|
```
|