github.com/fnando/bolt@v0.0.4-0.20231107225351-5241e4d187b8/internal/commands/version.go (about)

     1  package commands
     2  
     3  import (
     4  	"bufio"
     5  	"bytes"
     6  	"flag"
     7  	"fmt"
     8  
     9  	c "github.com/fnando/bolt/common"
    10  )
    11  
    12  func Version(args []string, output *c.Output) int {
    13  	var b bytes.Buffer
    14  	buffer := bufio.NewWriter(&b)
    15  
    16  	flags := flag.NewFlagSet("bolt version", flag.ContinueOnError)
    17  	flags.SetOutput(buffer)
    18  	err := flags.Parse(args)
    19  
    20  	usage := `
    21  Show the version and commit hash.
    22  
    23    Usage: bolt version
    24  `
    25  
    26  	if err == flag.ErrHelp {
    27  		fmt.Fprintln(output.Stdout, usage)
    28  		return 0
    29  	}
    30  
    31  	if err != nil {
    32  		fmt.Fprintf(output.Stderr, "%s %v\n", c.Color.Fail("ERROR:"), err)
    33  		return 1
    34  	}
    35  
    36  	fmt.Fprintf(output.Stdout, "bolt %s (%s)\n", c.Version, c.Commit)
    37  
    38  	return 0
    39  }