Skip to content

Version Flag

The default version flag (-v/--version) is defined as cli.VersionFlag, which is checked by the cli internals in order to print the App.Version via cli.VersionPrinter and break execution.

Customization

The default flag may be customized to something other than -v/--version by setting cli.VersionFlag, e.g.:

package main

import (
    "os"

    "github.com/urfave/cli/v2"
)

func main() {
    cli.VersionFlag = &cli.BoolFlag{
        Name:    "print-version",
        Aliases: []string{"V"},
        Usage:   "print only the version",
    }

    app := &cli.App{
        Name:    "partay",
        Version: "v19.99.0",
    }
    app.Run(os.Args)
}

Alternatively, the version printer at cli.VersionPrinter may be overridden, e.g.:

package main

import (
    "fmt"
    "os"

    "github.com/urfave/cli/v2"
)

var (
    Revision = "fafafaf"
)

func main() {
    cli.VersionPrinter = func(cCtx *cli.Context) {
        fmt.Printf("version=%s revision=%s\n", cCtx.App.Version, Revision)
    }

    app := &cli.App{
        Name:    "partay",
        Version: "v19.99.0",
    }
    app.Run(os.Args)
}

Last update: August 15, 2022