go(repositories): add sub menu for ee repository

pull/7/head
oscar 2022-08-21 21:34:10 +12:00
parent 5a6cd4ac16
commit b24dcfa9d9
2 changed files with 66 additions and 19 deletions

View File

@ -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())
}

View File

@ -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`)
}