github.com/jbendotnet/noms@v0.0.0-20190904222105-c43e4293ea92/go/util/verbose/verbose.go (about) 1 // Copyright 2016 Attic Labs, Inc. All rights reserved. 2 // Licensed under the Apache License, version 2.0: 3 // http://www.apache.org/licenses/LICENSE-2.0 4 5 package verbose 6 7 import ( 8 "log" 9 10 "github.com/attic-labs/kingpin" 11 ) 12 13 var ( 14 verbose bool 15 quiet bool 16 ) 17 18 // RegisterVerboseFlags registers -v|--verbose flags for general usage 19 func RegisterVerboseFlags(app *kingpin.Application) { 20 // Must reset globals because under test this can get called multiple times. 21 verbose = false 22 quiet = false 23 app.Flag("verbose", "show more").Short('v').BoolVar(&verbose) 24 app.Flag("quite", "show less").Short('q').BoolVar(&quiet) 25 } 26 27 // Verbose returns True if the verbose flag was set 28 func Verbose() bool { 29 return verbose 30 } 31 32 func SetVerbose(v bool) { 33 verbose = v 34 } 35 36 // Quiet returns True if the verbose flag was set 37 func Quiet() bool { 38 return quiet 39 } 40 41 func SetQuiet(q bool) { 42 quiet = q 43 } 44 45 // Log calls Printf(format, args...) iff Verbose() returns true. 46 func Log(format string, args ...interface{}) { 47 if Verbose() { 48 if len(args) > 0 { 49 log.Printf(format+"\n", args...) 50 } else { 51 log.Println(format) 52 } 53 } 54 }