-
Notifications
You must be signed in to change notification settings - Fork 152
/
backup_create.go
57 lines (52 loc) · 1.34 KB
/
backup_create.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package survey
import (
"github.com/AlecAivazis/survey/v2"
"github.com/raystack/salt/log"
)
// BackupCreateSurvey defines survey for creating backup
type BackupCreateSurvey struct {
logger log.Logger
}
// NewBackupCreateSurvey initializes surveys for creating backup
func NewBackupCreateSurvey(logger log.Logger) *BackupCreateSurvey {
return &BackupCreateSurvey{
logger: logger,
}
}
// AskResourceNames asks the user to add resource name for creating backup
func (*BackupCreateSurvey) AskResourceNames() (string, error) {
var resourceNames string
if err := survey.AskOne(
&survey.Input{
Message: "What are the resource names ? (separated by ,)",
Help: "Input name of the resources",
},
&resourceNames,
survey.WithValidator(
survey.ComposeValidators(
validateNoSlash,
survey.MinLength(3),
),
),
); err != nil {
return "", err
}
return resourceNames, nil
}
// AskBackupDescription asks the user the need of backup creation
func (*BackupCreateSurvey) AskBackupDescription() (string, error) {
var description string
if err := survey.AskOne(
&survey.Input{
Message: "Why is this backup needed?",
Help: "Describe intention to help identify the backup",
},
&description,
survey.WithValidator(
survey.ComposeValidators(survey.MinLength(3)),
),
); err != nil {
return "", err
}
return description, nil
}