diff --git a/internal/cli/checkupdate.go b/internal/cli/checkupdate.go deleted file mode 100644 index 8ae1d80..0000000 --- a/internal/cli/checkupdate.go +++ /dev/null @@ -1,95 +0,0 @@ -/* -Copyright © 2024 NAME HERE -*/ -package cli - -import ( - "context" - "fmt" - "os" - "strings" - - "git.unistack.org/unistack-org/pkgdash/internal/modules" - "github.com/spf13/cobra" - "go.unistack.org/micro/v4/logger" - "golang.org/x/mod/modfile" - "golang.org/x/mod/semver" -) - -// checkupdateCmd represents the checkupdate command -var checkupdateCmd = NewCheckUpdateCommand() - -var mvs = make(map[string]modules.Update) - -func init() { - rootCmd.AddCommand(checkupdateCmd) -} - -func NewCheckUpdateCommand() *cobra.Command { - ctx := context.Background() - - cmd := &cobra.Command{ - Use: "checkupdate", - Short: "CheckUpdate collects a list of dependencies with the latest updates.", - Long: `CheckUpdate collects a list of dependencies with the latest updates.`, - RunE: func(cmd *cobra.Command, args []string) error { - logger.Info(ctx, "CheckUpdate called") - - path := "." - if len(os.Args) > 1 { - path = os.Args[1] - } - - name, err := modules.FindModFile(path) - if err != nil { - panic(err) - } - buf, err := os.ReadFile(name) - if err != nil { - panic(err) - } - mfile, err := modfile.Parse(name, buf, nil) - if err != nil { - panic(err) - } - - mvs = make(map[string]modules.Update) - - updateOptions := modules.UpdateOptions{ - Pre: cfg.UpdateOpt.Pre, - Major: cfg.UpdateOpt.Major, - UpMajor: cfg.UpdateOpt.UpMajor, - Cached: cfg.UpdateOpt.Cached, - OnUpdate: func(u modules.Update) { - var modpath string // new mod path with major - if u.Err != nil { - logger.Error(ctx, fmt.Sprintf("%s: failed: %v", u.Module.Path, u.Err)) - return - } - modpath = u.Module.Path - v := semver.Major(u.Version) - p := modules.ModPrefix(modpath) - if !strings.HasPrefix(u.Module.Version, v) && v != "v1" && v != "v0" { - switch strings.HasPrefix(u.Module.Path, "gopkg.in") { - case true: - modpath = p + "." + v - case false: - modpath = p + "/" + v - } - } - mvs[modpath] = u - }, - } - - for _, req := range mfile.Require { - updateOptions.Modules = append(updateOptions.Modules, req.Mod) - } - - modules.Updates(updateOptions) - logger.Info(ctx, fmt.Sprintf("Modules get update: /n %s", mvs)) - return nil - }, - } - - return cmd -} diff --git a/internal/cli/delete.go b/internal/cli/delete.go deleted file mode 100644 index 44bfaf1..0000000 --- a/internal/cli/delete.go +++ /dev/null @@ -1,74 +0,0 @@ -/* -Copyright © 2024 NAME HERE -*/ -package cli - -import ( - "context" - "fmt" - - "github.com/spf13/cobra" -) - -var deleteCmd = NewDeleteCommand() - -type DeleteFlags struct { - all bool - mod string -} - -func init() { - rootCmd.AddCommand(deleteCmd) -} - -func NewDeleteCommand() *cobra.Command { - var flags DeleteFlags - - ctx := context.Background() - - cmd := &cobra.Command{ - Use: "delete", - Short: "Delete closes the merge requests created with a dependency update.", - Long: `Delete closes the merge requests created with a dependency update.`, - RunE: func(cmd *cobra.Command, args []string) error { - fmt.Println("delete called") - var err error - - if gitsource == nil { - return errSourceNil - } - - if len(prList) == 0 { - return errPRNotExist - } - - if flags.all { - for _, branch := range cfg.Branches { - rMap := prList[branch] - for path, _ := range rMap { - err = gitsource.RequestClose(ctx, branch, path) - if err != nil { - return err - } - } - } - } - - if flags.mod != "" { - for _, branch := range cfg.Branches { - err = gitsource.RequestClose(ctx, branch, flags.mod) - if err != nil { - return err - } - } - } - - return errFlagsNotExist - }, - } - - cmd.Flags().BoolVarP(&flags.all, "all", "a", false, "Deletes everything depending") - cmd.Flags().StringVarP(&flags.mod, "mod", "m", "", "Deletes one dependency") - - return cmd -} diff --git a/internal/cli/list.go b/internal/cli/list.go deleted file mode 100644 index b8c6536..0000000 --- a/internal/cli/list.go +++ /dev/null @@ -1,77 +0,0 @@ -/* -Copyright © 2024 NAME HERE -*/ -package cli - -import ( - "context" - "fmt" - - "github.com/spf13/cobra" - "go.unistack.org/micro/v4/logger" -) - -// updateCmd represents the update command -var listCmd = NewListCommand() - -var prList = map[string]map[string]string{} - -/* [ - "master": - [ - "go.unistack.org/micro/v4" : "Bump go.unistack.org/micro/v4 from v4.0.0 to v4.0.1", - "go.unistack.org/micro-client-http/v4":"Bump go.unistack.org/micro-client-http/v4 from v4.0.0 to v4.0.2", - ], - "v3": - [ - "go.unistack.org/micro/v3" : "Bump go.unistack.org/micro/v4 from v3.0.0 to v3.0.1", - ], -] */ - -func init() { - rootCmd.AddCommand(listCmd) -} - -func NewListCommand() *cobra.Command { - ctx := context.Background() - - cmd := &cobra.Command{ - Use: "list", - Short: "Update allows you to start the process of creating a PR in the repository", - Long: ` -Update allows you to start the process of creating a PR in the repository. -Use the -a flag to update all dependencies or -m flag a specific module. -`, - RunE: func(cmd *cobra.Command, args []string) error { - - logger.Info(ctx, "RequestList start") - - if gitsource == nil { - return errSourceNil - } - - if cfg == nil { - return errCfgNil - } - - prList = make(map[string]map[string]string) - logger.Info(ctx, fmt.Sprintf("Load config... \n %s", cfg)) - for _, branch := range cfg.Branches { - logger.Info(ctx, fmt.Sprintf("Start getting pr for %s", branch)) - rMap, err := gitsource.RequestList(ctx, branch) - if err != nil { - return err - } - prList[branch] = rMap - - logger.Info(ctx, fmt.Sprintf("for %s:\n%s", branch, rMap)) - } - - logger.Info(ctx, "Successful getting pull requests") - - return nil - }, - } - - return cmd -} diff --git a/internal/cli/root.go b/internal/cli/root.go deleted file mode 100644 index e98e955..0000000 --- a/internal/cli/root.go +++ /dev/null @@ -1,42 +0,0 @@ -/* -Copyright © 2024 NAME HERE -*/ -package cli - -import ( - "fmt" - "os" - - "github.com/spf13/cobra" -) - -var ( - errUpdateNotExist = fmt.Errorf("mod not in list of update. Call init") - errFlagsNotExist = fmt.Errorf("empty flags") - errSourceNil = fmt.Errorf("source nil. Call init") - errCfgNil = fmt.Errorf("cfg nil. Call init") - errPRNotExist = fmt.Errorf("pr not exist. Call list") -) - -// rootCmd represents the base command when called without any subcommands -var rootCmd = &cobra.Command{ - Use: "pkgdashcli [flags]", - Short: "Pkgdashcli application to update dependencies.", - Long: `Pkgdashcli allows you to define a version update for a dependency and start merge requests in version control systems.`, - // Uncomment the following line if your bare application - // has an action associated with it: - // Run: func(cmd *cobra.Command, args []string) { }, -} - -// Execute adds all child commands to the root command and sets flags appropriately. -// This is called by main.main(). It only needs to happen once to the rootCmd. -func Execute() { - err := rootCmd.Execute() - if err != nil { - os.Exit(1) - } -} - -func init() { - -} diff --git a/internal/cli/update.go b/internal/cli/update.go deleted file mode 100644 index 4fd950e..0000000 --- a/internal/cli/update.go +++ /dev/null @@ -1,95 +0,0 @@ -/* -Copyright © 2024 NAME HERE -*/ -package cli - -import ( - "context" - "fmt" - - "github.com/spf13/cobra" - "go.unistack.org/micro/v4/logger" -) - -var updateCmd = NewUpdateCommand() - -type UpdateFlags struct { - all bool - mod string -} - -func init() { - rootCmd.AddCommand(updateCmd) -} - -func NewUpdateCommand() *cobra.Command { - var flags UpdateFlags - - ctx := context.Background() - - cmd := &cobra.Command{ - Use: "update", - Short: "Update allows you to start the process of creating a PR in the repository", - Long: ` - Update allows you to start the process of creating a PR in the repository. - Use the -a flag to update all dependencies or -m flag a specific module. - `, - RunE: func(cmd *cobra.Command, args []string) error { - var err error - - if gitsource == nil { - return errSourceNil - } - if len(mvs) == 0 { - return errUpdateNotExist - } - - if flags.all { - logger.Info(ctx, "update all") - for pathMod, m := range mvs { - for _, branch := range cfg.Branches { - logger.Info(ctx, fmt.Sprintf("update mod: %s", m)) - - if err = gitsource.RequestOpen(ctx, branch, pathMod, m); err != nil { - logger.Error(ctx, fmt.Sprintf("PR open error: %s, base branch: %s", pathMod, branch)) - return err - } - - logger.Info(ctx, fmt.Sprintf("Successful update mod: %s", pathMod)) - } - - delete(mvs, pathMod) // todo возможно чисть не стоит и нужно просто пропускать - } - return nil - } - - if flags.mod != "" { - for _, branch := range cfg.Branches { - logger.Info(ctx, fmt.Sprintf("update mod: %s", flags.mod)) - - if _, ok := mvs[flags.mod]; !ok { - return errUpdateNotExist - } - - if err = gitsource.RequestOpen(ctx, branch, flags.mod, mvs[flags.mod]); err != nil { - logger.Error(ctx, fmt.Sprintf("PR open error: %s, base branch: %s", flags.mod, branch)) - return err - } - - logger.Info(ctx, fmt.Sprintf("Successful update mod: %s", flags.mod)) - } - - delete(mvs, flags.mod) - - return nil - } - - return errFlagsNotExist - }, - } - - cmd.Flags().BoolVarP(&flags.all, "all", "a", false, "Updates everything depending") - cmd.Flags().StringVarP(&flags.mod, "mod", "m", "", "Update one dependency") - - return cmd -}