Compare commits
3 Commits
7b66f95832
...
8028a50cc3
Author | SHA1 | Date | |
---|---|---|---|
8028a50cc3 | |||
10544e1c2d | |||
77cd6aac14 |
18
go/commands/git.go
Normal file
18
go/commands/git.go
Normal file
@ -0,0 +1,18 @@
|
||||
package commands
|
||||
|
||||
import (
|
||||
"ocl/portainer-devtool/utils"
|
||||
"os/exec"
|
||||
)
|
||||
|
||||
func ListBranches(workdir string) error {
|
||||
cmd := exec.Command("git", "branch")
|
||||
cmd.Dir = workdir
|
||||
out, err := cmd.Output()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
utils.PrintOutput("Your current checkout branch", out)
|
||||
return nil
|
||||
}
|
40
go/main.go
Normal file
40
go/main.go
Normal file
@ -0,0 +1,40 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"ocl/portainer-devtool/repositories"
|
||||
"ocl/portainer-devtool/utils"
|
||||
)
|
||||
|
||||
const (
|
||||
MENU_OPTION_EE_REPO int = iota + 1
|
||||
MENU_OPTION_CE_REPO
|
||||
MENU_OPTION_AGENT_REPO
|
||||
MENU_OPTION_OTHERS
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
utils.MenuPrint()
|
||||
|
||||
var option int
|
||||
_, err := fmt.Scanf("%d", &option)
|
||||
if err != nil {
|
||||
log.Fatal(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())
|
||||
}
|
5
go/repositories/actioner.go
Normal file
5
go/repositories/actioner.go
Normal file
@ -0,0 +1,5 @@
|
||||
package repositories
|
||||
|
||||
type Actioner interface {
|
||||
Execute() error
|
||||
}
|
37
go/repositories/ee.go
Normal file
37
go/repositories/ee.go
Normal file
@ -0,0 +1,37 @@
|
||||
package repositories
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"ocl/portainer-devtool/commands"
|
||||
"ocl/portainer-devtool/utils"
|
||||
)
|
||||
|
||||
type PortainerEE struct {
|
||||
WorkDir string
|
||||
FrontendDir string
|
||||
BackendDir string
|
||||
}
|
||||
|
||||
func NewPortainerEERepository() *PortainerEE {
|
||||
repo := &PortainerEE{
|
||||
WorkDir: "/home/oscarzhou/source/github.com/portainer/portainer-ee",
|
||||
}
|
||||
|
||||
utils.HighlightPrint("Your portainer EE repository work directory is ")
|
||||
fmt.Println(repo.WorkDir)
|
||||
|
||||
return repo
|
||||
}
|
||||
|
||||
func (repo *PortainerEE) Execute() error {
|
||||
err := commands.ListBranches(repo.WorkDir)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if !utils.PromptContinue() {
|
||||
return nil
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
65
go/utils/print.go
Normal file
65
go/utils/print.go
Normal file
@ -0,0 +1,65 @@
|
||||
package utils
|
||||
|
||||
import "fmt"
|
||||
|
||||
const (
|
||||
colorReset string = "\033[0m"
|
||||
|
||||
colorRed string = "\033[31m"
|
||||
colorGreen string = "\033[32m"
|
||||
colorYellow string = "\033[33m"
|
||||
colorBlue string = "\033[34m"
|
||||
colorPurple string = "\033[35m"
|
||||
colorCyan string = "\033[36m"
|
||||
colorWhite string = "\033[37m"
|
||||
)
|
||||
|
||||
func PrintOutput(message string, output []byte) {
|
||||
if message != "" {
|
||||
HighlightPrint(message)
|
||||
}
|
||||
fmt.Println(string(output))
|
||||
}
|
||||
|
||||
func HighlightPrint(message string) {
|
||||
fmt.Println()
|
||||
fmt.Println(colorBlue, message, colorReset)
|
||||
}
|
||||
|
||||
func SuccessPrint(message string) {
|
||||
fmt.Println()
|
||||
fmt.Println(colorGreen, message, colorReset)
|
||||
}
|
||||
|
||||
func ErrorPrint(message string) {
|
||||
fmt.Println()
|
||||
fmt.Println(colorRed, message, colorReset)
|
||||
}
|
||||
|
||||
func InputPrint(message string) {
|
||||
fmt.Println()
|
||||
fmt.Println(colorYellow, message, colorReset)
|
||||
}
|
||||
|
||||
func MenuPrint() {
|
||||
InputPrint("Which repository or action do you want to operate:")
|
||||
|
||||
// menu := `
|
||||
// 1. Build Portainer EE/CE All
|
||||
// 2. Build Portainer EE/CE Frontend
|
||||
// 3. Build Portainer EE/CE Backend
|
||||
// 4. Generate Portainer EE/CE JWT
|
||||
// 5. Run Before Commit [Portainer EE/CE]
|
||||
// 6. Get Portainer CE API Reference
|
||||
// 7. Run Before Commit [k8s]
|
||||
// 8. Build Portainer Agent
|
||||
// 9. Cleanup Temporary Volume
|
||||
// `
|
||||
|
||||
menu := `1. Portainer EE Repository
|
||||
2. Portainer CE Repository
|
||||
3. Portainer Agent Repository
|
||||
4. Others`
|
||||
|
||||
fmt.Println(colorCyan, menu, colorReset)
|
||||
}
|
22
go/utils/prompt.go
Normal file
22
go/utils/prompt.go
Normal file
@ -0,0 +1,22 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func PromptContinue() bool {
|
||||
ret := strings.ToLower(prompt("Continue (y/n)"))
|
||||
if ret == "y" || ret == "yes" {
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
func prompt(question string) string {
|
||||
fmt.Printf("%s %s :%s", colorYellow, question, colorReset)
|
||||
var ret string
|
||||
fmt.Scanf("%s", &ret)
|
||||
return ret
|
||||
}
|
Loading…
Reference in New Issue
Block a user