diff --git a/go/go.mod b/go/go.mod new file mode 100644 index 0000000..075a3b6 --- /dev/null +++ b/go/go.mod @@ -0,0 +1,3 @@ +module ocl/portainer-devtool + +go 1.18 diff --git a/go/main.go b/go/main.go new file mode 100644 index 0000000..b919258 --- /dev/null +++ b/go/main.go @@ -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()) +} diff --git a/go/repositories/actioner.go b/go/repositories/actioner.go new file mode 100644 index 0000000..3cbd209 --- /dev/null +++ b/go/repositories/actioner.go @@ -0,0 +1,5 @@ +package repositories + +type Actioner interface { + Execute() error +} diff --git a/go/repositories/ee.go b/go/repositories/ee.go new file mode 100644 index 0000000..d83d015 --- /dev/null +++ b/go/repositories/ee.go @@ -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 +}