diff --git a/cli/src/cmd/pkg/generate.go b/cli/src/cmd/pkg/generate.go index 0af37b2..0a586bc 100644 --- a/cli/src/cmd/pkg/generate.go +++ b/cli/src/cmd/pkg/generate.go @@ -4,7 +4,6 @@ import ( "context" "os" "path" - "path/filepath" "cli/core/generate" "cli/core/prompt" @@ -27,13 +26,14 @@ func packageGenerateCommand() *cobra.Command { panic(err) } - ex, err := os.Executable() + // Get the current working directory + cwd, err := os.Getwd() if err != nil { log.Error(ctx, err) panic(err) } - packagePath := path.Join(filepath.Dir(ex), resp.Id) + packagePath := path.Join(cwd, resp.Id) err = os.Mkdir(packagePath, os.ModePerm) if err != nil { log.Error(ctx, err) diff --git a/cli/src/cmd/version/version b/cli/src/cmd/version/version index f90b1af..197c4d5 100644 --- a/cli/src/cmd/version/version +++ b/cli/src/cmd/version/version @@ -1 +1 @@ -2.3.2 +2.4.0 diff --git a/cli/src/core/generate/generate_test.go b/cli/src/core/generate/generate_test.go index 333ebcd..11e46b7 100644 --- a/cli/src/core/generate/generate_test.go +++ b/cli/src/core/generate/generate_test.go @@ -28,7 +28,6 @@ func Test_createFileFromTemplate(t *testing.T) { generatePackSpec := core.GeneratePackageSpec{ Id: "test-package", Name: "Test Package", - Stack: "test-stack", Image: "test/image", Description: "A package for testing", Type: "infrastructure", diff --git a/cli/src/core/generate/template/package/swarm.sh b/cli/src/core/generate/template/package/swarm.sh index 6183c48..9b92e96 100644 --- a/cli/src/core/generate/template/package/swarm.sh +++ b/cli/src/core/generate/template/package/swarm.sh @@ -4,7 +4,7 @@ declare ACTION="" declare MODE="" declare COMPOSE_FILE_PATH="" declare UTILS_PATH="" -declare SERVICE_NAMES=() +declare STACK="{{.Id}}" function init_vars() { ACTION=$1 @@ -17,15 +17,11 @@ function init_vars() { UTILS_PATH="${COMPOSE_FILE_PATH}/../utils" - SERVICE_NAMES=( - "{{.Id}}" - ) - readonly ACTION readonly MODE readonly COMPOSE_FILE_PATH readonly UTILS_PATH - readonly SERVICE_NAMES + readonly STACK } # shellcheck disable=SC1091 @@ -44,8 +40,7 @@ function initialize_package() { fi ( - docker::deploy_service "${COMPOSE_FILE_PATH}" "$package_dev_compose_filename" - docker::deploy_sanity "${SERVICE_NAMES[@]}" + docker::deploy_service $STACK "${COMPOSE_FILE_PATH}" "docker-compose.yml" "$package_dev_compose_filename" ) || { log error "Failed to deploy package" exit 1 @@ -53,7 +48,7 @@ function initialize_package() { } function destroy_package() { - docker::service_destroy "${SERVICE_NAMES[@]}" + docker::stack_destroy $STACK } main() { @@ -67,7 +62,7 @@ main() { elif [[ "${ACTION}" == "down" ]]; then log info "Scaling down package" - docker::scale_services_down "${SERVICE_NAMES[@]}" + docker::scale_services $STACK 0 elif [[ "${ACTION}" == "destroy" ]]; then log info "Destroying package" diff --git a/cli/src/core/prompt/package.go b/cli/src/core/prompt/package.go index 530828e..cf27086 100644 --- a/cli/src/core/prompt/package.go +++ b/cli/src/core/prompt/package.go @@ -2,9 +2,7 @@ package prompt import ( "cli/core" - "fmt" - "github.com/iancoleman/strcase" "github.com/luno/jettison/errors" "github.com/manifoldco/promptui" ) @@ -15,11 +13,10 @@ func GeneratePackagePrompt() (core.GeneratePackageSpec, error) { What is the name of your package: What docker image would you like to use with this project: Provide a description of your package: - Which stack does your package belong to: What type best suites your package: Do you want to include a dev compose file: - Which port would you like to target in dev mode: - Which port would you like published in dev mode: + Which port would you like to target on the container in dev mode: + Which port would you like published on the host in dev mode: */ promptId := promptui.Prompt{ @@ -41,8 +38,8 @@ func GeneratePackagePrompt() (core.GeneratePackageSpec, error) { } promptImage := promptui.Prompt{ - Label: "What docker image would you like to use with this project", - Default: strcase.ToKebab(fmt.Sprintf("organisation/%v", name)), + Label: "What docker image would you like to use with this package", + Default: "nginx", } image, err := promptImage.Run() if err != nil { @@ -58,15 +55,6 @@ func GeneratePackagePrompt() (core.GeneratePackageSpec, error) { return core.GeneratePackageSpec{}, errors.Wrap(err, "") } - promptStack := promptui.Prompt{ - Label: "Which stack does your package belong to", - Default: "instant", - } - stack, err := promptStack.Run() - if err != nil { - return core.GeneratePackageSpec{}, errors.Wrap(err, "") - } - promptType := promptui.Select{ Label: "What type best suites your package", Items: []string{"infrastructure", "use-case"}, @@ -94,8 +82,8 @@ func GeneratePackagePrompt() (core.GeneratePackageSpec, error) { includeDevFile = true promptTargetPort := promptui.Prompt{ - Label: "Which port would you like to target in dev mode?", - Default: "8080", + Label: "Which port would you like to target on the container in dev mode?", + Default: "80", } targetPort, err = promptTargetPort.Run() if err != nil { @@ -103,8 +91,8 @@ func GeneratePackagePrompt() (core.GeneratePackageSpec, error) { } promptPublishedPort := promptui.Prompt{ - Label: "Which port would you like published in dev mode?", - Default: "8081", + Label: "Which port would you like published on the host in dev mode?", + Default: "8080", } publishedPort, err = promptPublishedPort.Run() if err != nil { @@ -117,7 +105,6 @@ func GeneratePackagePrompt() (core.GeneratePackageSpec, error) { Name: name, Image: image, Description: description, - Stack: stack, Type: packageType, IncludeDevFile: includeDevFile, TargetPort: targetPort, diff --git a/cli/src/core/types.go b/cli/src/core/types.go index 08430b5..9dc55e9 100644 --- a/cli/src/core/types.go +++ b/cli/src/core/types.go @@ -39,7 +39,6 @@ type GeneratePackageSpec struct { Id string Name string Image string - Stack string Description string Type string IncludeDevFile bool diff --git a/cli/src/features/test-package/swarm.sh b/cli/src/features/test-package/swarm.sh index 2cf3028..b068c51 100644 --- a/cli/src/features/test-package/swarm.sh +++ b/cli/src/features/test-package/swarm.sh @@ -4,7 +4,7 @@ declare ACTION="" declare MODE="" declare COMPOSE_FILE_PATH="" declare UTILS_PATH="" -declare SERVICE_NAMES=() +declare STACK="test-package" function init_vars() { ACTION=$1 @@ -17,15 +17,11 @@ function init_vars() { UTILS_PATH="${COMPOSE_FILE_PATH}/../utils" - SERVICE_NAMES=( - "test-package" - ) - readonly ACTION readonly MODE readonly COMPOSE_FILE_PATH readonly UTILS_PATH - readonly SERVICE_NAMES + readonly STACK } # shellcheck disable=SC1091 @@ -44,8 +40,7 @@ function initialize_package() { fi ( - docker::deploy_service "${COMPOSE_FILE_PATH}" "$package_dev_compose_filename" - docker::deploy_sanity "${SERVICE_NAMES[@]}" + docker::deploy_service $STACK "${COMPOSE_FILE_PATH}" "docker-compose.yml" "$package_dev_compose_filename" ) || { log error "Failed to deploy package" exit 1 @@ -53,7 +48,7 @@ function initialize_package() { } function destroy_package() { - docker::service_destroy "${SERVICE_NAMES[@]}" + docker::stack_destroy $STACK } main() { @@ -67,7 +62,7 @@ main() { elif [[ "${ACTION}" == "down" ]]; then log info "Scaling down package" - docker::scale_services_down "${SERVICE_NAMES[@]}" + docker::scale_services $STACK 0 elif [[ "${ACTION}" == "destroy" ]]; then log info "Destroying package" diff --git a/cli/src/go.mod b/cli/src/go.mod index 04ea20a..374314e 100644 --- a/cli/src/go.mod +++ b/cli/src/go.mod @@ -6,7 +6,6 @@ require ( github.com/cucumber/godog v0.12.5 github.com/docker/cli v20.10.21+incompatible github.com/docker/docker v20.10.21+incompatible - github.com/iancoleman/strcase v0.2.0 github.com/luno/jettison v0.0.0-20221009180414-a591f4833ce4 github.com/manifoldco/promptui v0.9.0 github.com/spf13/cobra v1.6.1 diff --git a/cli/src/go.sum b/cli/src/go.sum index 3360ec1..ca41c01 100644 --- a/cli/src/go.sum +++ b/cli/src/go.sum @@ -503,8 +503,6 @@ github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0m github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= -github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=