package templates import ( "fmt" ) type UsageInputs struct { Id string SshKeys []string ErrorMessages []string RemoteShells map[string]bool LocalShells map[string]bool DownloadCommand string } func NewUsageInputs(id string, sshPublicKeys []string, remoteShells []string, localShells []string, downloadCommand string) UsageInputs { inputs := UsageInputs{ Id: id, SshKeys: sshPublicKeys, RemoteShells: make(map[string]bool), LocalShells: make(map[string]bool), DownloadCommand: downloadCommand, } for _, remoteShell := range remoteShells { inputs.RemoteShells[remoteShell] = true } for _, localShell := range localShells { inputs.LocalShells[localShell] = true } return inputs } func addSshKeys(shell string, keys []string) string { quote := `"` if shell == CMD { quote = "" } res := "" for index, key := range keys { operator := ">>" if index == 0 { operator = ">" } res += fmt.Sprintf(" echo %s%s%s %s .authorized_keys
", quote, key, quote, operator) } return res + " " } func formControlTextClass(message string) string { if message == "" { return "form-control" } return "form-control is-invalid" }