Skip to content

Commit

Permalink
Fix parsing of vssh options
Browse files Browse the repository at this point in the history
  • Loading branch information
isometry committed Oct 24, 2020
1 parent b5dae72 commit c982d92
Showing 1 changed file with 13 additions and 7 deletions.
20 changes: 13 additions & 7 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,29 @@ var (
)

var options struct {
Signer signer.Options `group:"Vault SSH key signing options"`
OpenSSH openssh.Options `group:"OpenSSH ssh(1) options" hidden:"yes"`
Version func() `long:"version" description:"show version"`
Signer signer.Options `group:"Vault SSH key signing Options"`
OpenSSH openssh.Options `group:"OpenSSH ssh(1) Options" hidden:"yes"`
Version func() `long:"version" group:"Help" description:"show version"`
}

func main() {
options.Version = func() {
fmt.Printf("vault-ssh-client v%s (%s), %s\n", version, commit, date)
os.Exit(0)
}
parser := flags.NewParser(&options, flags.HelpFlag|flags.PassDoubleDash)
parser := flags.NewParser(&options, flags.Default)
parser.Usage = "[options] destination [command]"
if _, err := parser.ParseArgs(os.Args[1:]); err != nil {
log.Fatal("error parsing arguments: ", err)
if flagsErr, ok := err.(*flags.Error); ok && flagsErr.Type == flags.ErrHelp {
os.Exit(0)
} else {
fmt.Println(err)
os.Exit(1)
}
}

sshClient, unparsedArgs := openssh.ParseArgs(os.Args[1:])
vaultClient, unparsedArgs := signer.ParseArgs(os.Args[1:])
sshClient, _ := openssh.ParseArgs(unparsedArgs)

if sshClient.Options.LoginName == "" {
currentUser, _ := user.Current()
Expand All @@ -43,7 +50,6 @@ func main() {
controlConnection := sshClient.ControlConnection()

if !controlConnection {
vaultClient, _ := signer.ParseArgs(unparsedArgs)
if !vaultClient.Options.PTY && len(sshClient.Options.ForcePTY) > 0 {
vaultClient.Options.PTY = true
}
Expand Down

0 comments on commit c982d92

Please sign in to comment.