diff --git a/go/main.go b/go/main.go index b919258..c6e9b43 100644 --- a/go/main.go +++ b/go/main.go @@ -1,10 +1,10 @@ package main import ( - "fmt" "log" "ocl/portainer-devtool/repositories" "ocl/portainer-devtool/utils" + "os" ) const ( @@ -12,29 +12,42 @@ const ( MENU_OPTION_CE_REPO MENU_OPTION_AGENT_REPO MENU_OPTION_OTHERS + MENU_OPTION_QUIT ) func main() { - utils.MenuPrint() + for { - var option int - _, err := fmt.Scanf("%d", &option) - if err != nil { - log.Fatal(err) + printMainMenu := func() { + utils.MenuPrint("Which repository or action do you want to operate:", ` + 1. Portainer EE Repository + 2. Portainer CE Repository + 3. Portainer Agent Repository + 4. Others + 5. Quit`) + } + + option := utils.PromptMenu(printMainMenu) + + var action repositories.Actioner + switch option { + case MENU_OPTION_EE_REPO: + action = repositories.NewPortainerEERepository() + case MENU_OPTION_CE_REPO: + + case MENU_OPTION_AGENT_REPO: + + case MENU_OPTION_OTHERS: + + case MENU_OPTION_QUIT: + os.Exit(0) + } + + err := action.Execute() + if err != nil { + log.Fatalln(err) + } } - var action repositories.Actioner - switch option { - case MENU_OPTION_EE_REPO: - action = repositories.NewPortainerEERepository() - case MENU_OPTION_CE_REPO: - - case MENU_OPTION_AGENT_REPO: - - case MENU_OPTION_OTHERS: - - } - - log.Fatal(action.Execute()) } diff --git a/go/repositories/ee.go b/go/repositories/ee.go index d83d015..eed87e7 100644 --- a/go/repositories/ee.go +++ b/go/repositories/ee.go @@ -6,6 +6,18 @@ import ( "ocl/portainer-devtool/utils" ) +const ( + ACTION_EE_BUILD_ALL int = iota + 1 + ACTION_EE_RUN_FRONTEND + ACTION_EE_RUN_BACKEND + ACTION_EE_VALIDATE_ALL + ACTION_EE_VALIDATE_FRONTEND + ACTION_EE_VALIDATE_BACKEND + ACTION_EE_RUN_UNIT_TEST_ALL + ACTION_EE_RUN_UNIT_TEST_FRONTEND + ACTION_EE_RUN_UNIT_TEST_BACKEND +) + type PortainerEE struct { WorkDir string FrontendDir string @@ -33,5 +45,27 @@ func (repo *PortainerEE) Execute() error { return nil } + option := utils.PromptMenu(repo.listSubMenu) + switch option { + case ACTION_EE_BUILD_ALL: + + case ACTION_EE_RUN_FRONTEND: + commands.RunPortainerClient(repo.WorkDir) + + } + return nil } + +func (repo *PortainerEE) listSubMenu() { + utils.MenuPrint("Do you want?", ` + 1. Build both front-end and backend + 2. Run front-end only + 3. Run backend only + 4. Validate both fornt-end and backend before commit + 5. Validate front-end only before commit + 6. Validate backend only before commit + 7. Run unit tests for both front-end and backend + 8. Run unit tests for front-end only + 9. Run unit tests for backend only`) +}