42 lines
1.1 KiB
Go
42 lines
1.1 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"flag"
|
||
|
"log"
|
||
|
"os"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
deprecatedFlagProgOnly = "prog_only"
|
||
|
deprecatedFlagExecOnly = "exec_only"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
_ = flag.Bool("prog_only", false, "DEPRECATED (reflect mode) Only generate the reflection program; write it to stdout and exit.")
|
||
|
_ = flag.String("exec_only", "", "DEPRECATED (reflect mode) If set, execute this reflection program.")
|
||
|
)
|
||
|
|
||
|
// notifyAboutDeprecatedFlags prints a warning message for a deprecated flags if they are set.
|
||
|
func notifyAboutDeprecatedFlags() {
|
||
|
const resetColorPostfix = "\033[0m"
|
||
|
logger := initWarningLogger()
|
||
|
|
||
|
flag.Visit(func(f *flag.Flag) {
|
||
|
switch f.Name {
|
||
|
case deprecatedFlagProgOnly:
|
||
|
logger.Println("The -prog_only flag is deprecated and has no effect.", resetColorPostfix)
|
||
|
case deprecatedFlagExecOnly:
|
||
|
logger.Println("The -exec_only flag is deprecated and has no effect.", resetColorPostfix)
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func initWarningLogger() *log.Logger {
|
||
|
const (
|
||
|
yellowColor = "\033[33m"
|
||
|
warningPrefix = yellowColor + "WARNING: "
|
||
|
)
|
||
|
|
||
|
return log.New(os.Stdout, warningPrefix, log.Ldate|log.Ltime)
|
||
|
}
|