diff options
| author | Joe Richey joerichey@google.com <joerichey@google.com> | 2017-10-09 19:12:49 -0700 |
|---|---|---|
| committer | Joseph Richey <joerichey94@gmail.com> | 2017-10-19 02:22:24 -0700 |
| commit | 921f1c977c4e0704f61e3a7c092d3a4317ab278c (patch) | |
| tree | a3a2d3f089a19710b7ed0886ee8ba0ffb2bc4294 /cmd/version.go | |
| parent | b96f72d63641c8dcfe5e142ecd5d6c9f9a7d5778 (diff) | |
Fixes
Diffstat (limited to 'cmd/version.go')
| -rw-r--r-- | cmd/version.go | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/cmd/version.go b/cmd/version.go new file mode 100644 index 0000000..787e2cd --- /dev/null +++ b/cmd/version.go @@ -0,0 +1,62 @@ +/* + * version.go - Version subcommand that can be added to any binary + * + * Copyright 2017 Google Inc. + * Author: Joe Richey (joerichey@google.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package cmd + +// Templates for use with the version command, which both parse the Info var. +var ( + VersionShortTemplate = "{{.Command}} version {{.VersionTag}}\n" + VersionLongTemplate = VersionShortTemplate + `{{if .Compiled}} +Compiled: + {{.Compiled}} +{{end}}{{if len .Authors}} +Author{{with $length := len .Authors}}{{if ne 1 $length}}s{{end}}{{end}}:{{range .Authors}} + {{.}}{{end}} +{{end}}{{if .Copyright}} +Copyright: + {{.Copyright}} +{{end}}` +) + +// Version is a command which will display either the VersionTag (by default) or +// the full version information (version, copyright, authors). +var Version = &Command{ + Name: "version", + UsageLines: []string{""}, + Flags: []Flag{longFlag}, + Action: versionAction, +} + +// Using longFlag with the version command displays the longer version info. +var longFlag = &BoolFlag{ + Name: "long", + Usage: "Print the detailed version and copyright information.", +} + +func versionAction(_ []string) error { + if Info.VersionTag == "" { + return ErrUnknownVersion + } + if longFlag.Value { + + } else { + + } + return nil +} |