58 lines
1.2 KiB
Go
58 lines
1.2 KiB
Go
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<br/>", quote, key, quote,
|
|
operator)
|
|
}
|
|
return res + " "
|
|
}
|
|
|
|
func formControlTextClass(message string) string {
|
|
if message == "" {
|
|
return "form-control"
|
|
}
|
|
return "form-control is-invalid"
|
|
}
|