diff --git a/libgobuster/version.go b/libgobuster/version.go index 62b20abb..70f304ef 100644 --- a/libgobuster/version.go +++ b/libgobuster/version.go @@ -3,6 +3,7 @@ package libgobuster import ( "fmt" "runtime/debug" + "strconv" ) const ( @@ -11,16 +12,35 @@ const ( ) func GetVersion() string { - version := VERSION + modified := false + revision := "" + time := "" if info, ok := debug.ReadBuildInfo(); ok { for _, setting := range info.Settings { if setting.Key == "vcs.revision" { - version = fmt.Sprintf("%s Revision %s", version, setting.Value) + revision = setting.Value } if setting.Key == "vcs.time" { - version = fmt.Sprintf("%s from %s", version, setting.Value) + time = setting.Value + } + if setting.Key == "vcs.modified" { + if mod, err := strconv.ParseBool(setting.Value); err == nil { + modified = mod + } } } } + version := VERSION + if revision != "" { + version = fmt.Sprintf("%s Revision %s", version, revision) + } + + if modified { + version = fmt.Sprintf("%s [DIRTY]", version) + } + if time != "" { + version = fmt.Sprintf("%s from %s", version, time) + } + return version }