code reformat, init fixes
This commit is contained in:
64
app/modules/interact/docker_hub.go
Normal file
64
app/modules/interact/docker_hub.go
Normal file
@ -0,0 +1,64 @@
|
||||
package interact
|
||||
|
||||
import (
|
||||
"github.com/AlecAivazis/survey/v2"
|
||||
"ledo/app/modules/docker_hub"
|
||||
)
|
||||
|
||||
func SelectDockerHubTag(dockerImage string) (string, error) {
|
||||
dockerImageTags := docker_hub.GetImageTags(dockerImage)
|
||||
selectedTag := "latest"
|
||||
|
||||
var qs = []*survey.Question{
|
||||
{
|
||||
Name: "tags",
|
||||
Prompt: &survey.Select{
|
||||
Message: "Select available docker image tag",
|
||||
PageSize: 10,
|
||||
Options: docker_hub.ImageTagsToArray(dockerImageTags),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
err := survey.Ask(qs, &selectedTag)
|
||||
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return selectedTag, err
|
||||
}
|
||||
|
||||
func EnterDockerImage() (string, error) {
|
||||
dockerImage := ""
|
||||
prompt := &survey.Input{
|
||||
Message: "Enter docker base image: ",
|
||||
Help: "This is base Dockerfile image (FROM image)",
|
||||
}
|
||||
survey.AskOne(prompt, &dockerImage)
|
||||
return dockerImage, nil
|
||||
}
|
||||
|
||||
func SearchDockerImage(image string) (string, error) {
|
||||
dockerImages := docker_hub.GetImage(image)
|
||||
selectedImage := ""
|
||||
|
||||
var qs = []*survey.Question{
|
||||
{
|
||||
Name: "image",
|
||||
Prompt: &survey.Select{
|
||||
Message: "Select available docker image",
|
||||
PageSize: 100,
|
||||
Options: docker_hub.DockerImageToArray(dockerImages),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
err := survey.Ask(qs, &selectedImage)
|
||||
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return selectedImage, err
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
package interact
|
||||
|
||||
import (
|
||||
survey "github.com/AlecAivazis/survey/v2"
|
||||
"ledo/app/modules/docker_hub"
|
||||
)
|
||||
|
||||
func SelectDockerHubTag(dockerImage string) (string, error) {
|
||||
dockerImageTags := docker_hub.GetImageTags(dockerImage)
|
||||
selectedTag := "latest"
|
||||
|
||||
var qs = []*survey.Question{
|
||||
{
|
||||
Name: "tags",
|
||||
Prompt: &survey.Select{
|
||||
Message: "Select available docker image tag",
|
||||
PageSize: 10,
|
||||
Options: docker_hub.ImageTagsToArray(dockerImageTags),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
err := survey.Ask(qs, &selectedTag)
|
||||
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return selectedTag, err
|
||||
}
|
24
app/modules/interact/docker_init.go
Normal file
24
app/modules/interact/docker_init.go
Normal file
@ -0,0 +1,24 @@
|
||||
package interact
|
||||
|
||||
import (
|
||||
"ledo/app/helper"
|
||||
)
|
||||
|
||||
func InitDocker() (helper.DockerProjectCfg, error) {
|
||||
dockerConfig := helper.DockerProjectCfg{}
|
||||
|
||||
image, err := EnterDockerImage()
|
||||
if err != nil {
|
||||
return dockerConfig, err
|
||||
}
|
||||
|
||||
tag, err := SelectDockerHubTag(image)
|
||||
if err != nil {
|
||||
return dockerConfig, err
|
||||
}
|
||||
|
||||
dockerConfig.DockerBaseImage = image
|
||||
dockerConfig.DockerBaseTag = tag
|
||||
|
||||
return dockerConfig, err
|
||||
}
|
51
app/modules/interact/docker_service.go
Normal file
51
app/modules/interact/docker_service.go
Normal file
@ -0,0 +1,51 @@
|
||||
package interact
|
||||
|
||||
import (
|
||||
"github.com/AlecAivazis/survey/v2"
|
||||
"ledo/app/helper"
|
||||
)
|
||||
|
||||
var PredefinedDockerComposeModes = []string{
|
||||
"base",
|
||||
"dev",
|
||||
"test",
|
||||
}
|
||||
|
||||
func CreateDockerService() (helper.DockerProjectAdditionalServiceCfg, error) {
|
||||
dockerServiceConfig := helper.DockerProjectAdditionalServiceCfg{}
|
||||
|
||||
var qs = []*survey.Question{
|
||||
//{
|
||||
// Name: "DockerServiceType",
|
||||
// Prompt: &survey.Select{
|
||||
// Message: "Select type of service",
|
||||
// PageSize: 10,
|
||||
// Options: []string{"database", "development", "tools"},
|
||||
// },
|
||||
//},
|
||||
//{
|
||||
// Name: "DockerServiceMode",
|
||||
// Prompt: &survey.Select{
|
||||
// Message: "Select docker-compose mode (file)",
|
||||
// PageSize: 10,
|
||||
// Options: PredefinedDockerComposeModes,
|
||||
// },
|
||||
//},
|
||||
{
|
||||
Name: "DockerServiceImage",
|
||||
Prompt: &survey.Input{Message: "Enter image name: "},
|
||||
Validate: survey.Required,
|
||||
Transform: survey.ToLower,
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
err := survey.Ask(qs, &dockerServiceConfig)
|
||||
|
||||
if err != nil {
|
||||
return dockerServiceConfig, err
|
||||
}
|
||||
|
||||
return dockerServiceConfig, err
|
||||
}
|
||||
|
@ -1,14 +1,13 @@
|
||||
|
||||
package interact
|
||||
|
||||
import (
|
||||
survey "github.com/AlecAivazis/survey/v2"
|
||||
"github.com/AlecAivazis/survey/v2"
|
||||
"ledo/app/modules/config"
|
||||
)
|
||||
|
||||
func InitLedoProject(dockerConfig config.DockerMap) (config.DockerMap, error) {
|
||||
if dockerConfig.Registry == "" {
|
||||
dockerConfig.Registry = "hub.docker.com"
|
||||
dockerConfig.Registry = ""
|
||||
}
|
||||
|
||||
if dockerConfig.Shell == "" {
|
||||
@ -21,42 +20,41 @@ func InitLedoProject(dockerConfig config.DockerMap) (config.DockerMap, error) {
|
||||
|
||||
var qs = []*survey.Question{
|
||||
{
|
||||
Name: "Registry",
|
||||
Prompt: &survey.Input{Message: "Enter docker registry address: ", Default: dockerConfig.Registry, Help: "Docker registry for main service image"},
|
||||
Validate: survey.Required,
|
||||
Name: "Registry",
|
||||
Prompt: &survey.Input{Message: "Enter docker registry address: ", Default: dockerConfig.Registry, Help: "Docker registry for main service image"},
|
||||
Validate: survey.Required,
|
||||
Transform: survey.ToLower,
|
||||
},
|
||||
{
|
||||
Name: "Namespace",
|
||||
Prompt: &survey.Input{Message: "Enter project namespace: ",Default: dockerConfig.Namespace, Help: "Project namespace (eq. GitLab project group)"},
|
||||
Validate: survey.Required,
|
||||
Name: "Namespace",
|
||||
Prompt: &survey.Input{Message: "Enter project namespace: ", Default: dockerConfig.Namespace, Help: "Project namespace (eq. GitLab project group)"},
|
||||
Validate: survey.Required,
|
||||
Transform: survey.ToLower,
|
||||
},
|
||||
{
|
||||
Name: "Name",
|
||||
Prompt: &survey.Input{Message: "Enter project name: ", Default: dockerConfig.Name},
|
||||
Validate: survey.Required,
|
||||
Name: "Name",
|
||||
Prompt: &survey.Input{Message: "Enter project name: ", Default: dockerConfig.Name},
|
||||
Validate: survey.Required,
|
||||
Transform: survey.ToLower,
|
||||
},
|
||||
{
|
||||
Name: "MainService",
|
||||
Prompt: &survey.Input{Message: "Enter docker-compose main service name: ",Default: dockerConfig.MainService, Help: "Main service, important if you want use ledo shell command or ledo run command"},
|
||||
Validate: survey.Required,
|
||||
Name: "MainService",
|
||||
Prompt: &survey.Input{Message: "Enter docker-compose main service name: ", Default: dockerConfig.MainService, Help: "Main service, important if you want use ledo shell command or ledo run command"},
|
||||
Validate: survey.Required,
|
||||
Transform: survey.ToLower,
|
||||
},
|
||||
{
|
||||
Name: "Shell",
|
||||
Prompt: &survey.Input{Message: "Enter default shell: ", Default: dockerConfig.Shell},
|
||||
Validate: survey.Required,
|
||||
Name: "Shell",
|
||||
Prompt: &survey.Input{Message: "Enter default shell: ", Default: dockerConfig.Shell},
|
||||
Validate: survey.Required,
|
||||
Transform: survey.ToLower,
|
||||
},
|
||||
{
|
||||
Name: "Username",
|
||||
Prompt: &survey.Input{Message: "Enter docker main service username: ", Default: dockerConfig.Username, Help: "Default user, if set ledo run command was execute with sudo user"},
|
||||
Validate: survey.Required,
|
||||
Name: "Username",
|
||||
Prompt: &survey.Input{Message: "Enter docker main service username: ", Default: dockerConfig.Username, Help: "Default user, if set ledo run command was execute with sudo user"},
|
||||
Validate: survey.Required,
|
||||
Transform: survey.ToLower,
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
err := survey.Ask(qs, &dockerConfig)
|
||||
@ -68,9 +66,9 @@ func InitLedoProject(dockerConfig config.DockerMap) (config.DockerMap, error) {
|
||||
return dockerConfig, err
|
||||
}
|
||||
|
||||
func InitAdvancedConfigurationAsk() (bool) {
|
||||
func InitAdvancedConfigurationAsk(question string) bool {
|
||||
runAdv := false
|
||||
prompt := &survey.Confirm{Message: "Run advanced docker mode configuration?"}
|
||||
prompt := &survey.Confirm{Message: question}
|
||||
survey.AskOne(prompt, &runAdv)
|
||||
return runAdv
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
package interact
|
||||
|
||||
import (
|
||||
survey "github.com/AlecAivazis/survey/v2"
|
||||
"github.com/AlecAivazis/survey/v2"
|
||||
"github.com/thoas/go-funk"
|
||||
"ledo/app/modules/context"
|
||||
)
|
||||
@ -29,4 +29,4 @@ func SelectMode(context *context.LedoContext, selectedMode string) (string, erro
|
||||
_, err := mode.SetMode(selectedMode)
|
||||
|
||||
return selectedMode, err
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user