Compare commits

..

No commits in common. "b24dcfa9d92726a84438c12037a5c91c26922b9f" and "8028a50cc3f71ec9cf5195460fad903eb5143ade" have entirely different histories.

6 changed files with 26 additions and 138 deletions

View File

@ -1,15 +0,0 @@
package commands
import (
"ocl/portainer-devtool/utils"
)
// RunClient starts the portainer client
func RunPortainerClient(workdir string) error {
err := utils.RunCommandWithStdoutPipe(workdir, "yarn")
if err != nil {
return err
}
return utils.RunCommandWithStdoutPipe(workdir, "yarn", "start:client")
}

View File

@ -1,10 +1,10 @@
package main package main
import ( import (
"fmt"
"log" "log"
"ocl/portainer-devtool/repositories" "ocl/portainer-devtool/repositories"
"ocl/portainer-devtool/utils" "ocl/portainer-devtool/utils"
"os"
) )
const ( const (
@ -12,42 +12,29 @@ const (
MENU_OPTION_CE_REPO MENU_OPTION_CE_REPO
MENU_OPTION_AGENT_REPO MENU_OPTION_AGENT_REPO
MENU_OPTION_OTHERS MENU_OPTION_OTHERS
MENU_OPTION_QUIT
) )
func main() { func main() {
for { utils.MenuPrint()
printMainMenu := func() { var option int
utils.MenuPrint("Which repository or action do you want to operate:", ` _, err := fmt.Scanf("%d", &option)
1. Portainer EE Repository if err != nil {
2. Portainer CE Repository log.Fatal(err)
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,18 +6,6 @@ import (
"ocl/portainer-devtool/utils" "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 { type PortainerEE struct {
WorkDir string WorkDir string
FrontendDir string FrontendDir string
@ -45,27 +33,5 @@ func (repo *PortainerEE) Execute() error {
return nil 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 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`)
}

View File

@ -1,45 +0,0 @@
package utils
import (
"bufio"
"fmt"
"os/exec"
)
func RunCommandWithStdoutPipe(workdir, progName string, args ...string) error {
cmd := exec.Command(progName, args...)
cmd.Dir = workdir
out, err := cmd.StdoutPipe()
if err != nil {
return err
}
scanner := bufio.NewScanner(out)
go func() {
counter := 0
for scanner.Scan() {
if counter > 10 {
// Swallow the output
if counter%50 == 0 {
fmt.Printf("output %d lines in total.\n", counter)
}
counter++
continue
}
PrintOutput("", scanner.Bytes())
counter++
}
}()
err = cmd.Start()
if err != nil {
return err
}
err = cmd.Wait()
if err != nil {
return err
}
return nil
}

View File

@ -41,10 +41,8 @@ func InputPrint(message string) {
fmt.Println(colorYellow, message, colorReset) fmt.Println(colorYellow, message, colorReset)
} }
func MenuPrint(question, menu string) { func MenuPrint() {
if question != "" { InputPrint("Which repository or action do you want to operate:")
InputPrint(fmt.Sprintf("[%s]", question))
}
// menu := ` // menu := `
// 1. Build Portainer EE/CE All // 1. Build Portainer EE/CE All
@ -58,5 +56,10 @@ func MenuPrint(question, menu string) {
// 9. Cleanup Temporary Volume // 9. Cleanup Temporary Volume
// ` // `
menu := `1. Portainer EE Repository
2. Portainer CE Repository
3. Portainer Agent Repository
4. Others`
fmt.Println(colorCyan, menu, colorReset) fmt.Println(colorCyan, menu, colorReset)
} }

View File

@ -14,14 +14,6 @@ func PromptContinue() bool {
return false return false
} }
func PromptMenu(listMenu func()) int {
listMenu()
var option int
fmt.Scanf("%d", &option)
return option
}
func prompt(question string) string { func prompt(question string) string {
fmt.Printf("%s %s :%s", colorYellow, question, colorReset) fmt.Printf("%s %s :%s", colorYellow, question, colorReset)
var ret string var ret string