| skipped 1741 lines |
1742 | 1742 | | } |
1743 | 1743 | | } |
1744 | 1744 | | |
| 1745 | + | func expectsArbitraryString(opt string) bool { |
| 1746 | + | switch opt { |
| 1747 | + | case "-q", "--query", "-f", "--filter", "--header", "--prompt": |
| 1748 | + | return true |
| 1749 | + | } |
| 1750 | + | return false |
| 1751 | + | } |
| 1752 | + | |
1745 | 1753 | | // ParseOptions parses command-line options |
1746 | 1754 | | func ParseOptions() *Options { |
1747 | 1755 | | opts := defaultOptions() |
1748 | 1756 | | |
1749 | | - | for _, arg := range os.Args[1:] { |
1750 | | - | if arg == "--version" { |
| 1757 | + | for idx, arg := range os.Args[1:] { |
| 1758 | + | if arg == "--version" && (idx == 0 || idx > 0 && !expectsArbitraryString(os.Args[idx])) { |
1751 | 1759 | | opts.Version = true |
1752 | 1760 | | return opts |
1753 | 1761 | | } |
| skipped 15 lines |