diff --git a/cmd/add.go b/cmd/add.go index 68c48f0..f11ad5e 100644 --- a/cmd/add.go +++ b/cmd/add.go @@ -2,7 +2,7 @@ package cmd import ( "fmt" - "gitea.com/gpm/cli/modules/config" + "gitea.com/gpm/gpm/modules/config" "gitea.com/jolheiser/beaver" "github.com/AlecAivazis/survey/v2" "github.com/urfave/cli/v2" @@ -25,7 +25,7 @@ var Add = cli.Command{ func doAdd(ctx *cli.Context) error { goGetQuestion := &survey.Input{ - Message: "Package go-get URL", + Message: "Package go-get import", } var goGetAnswer string @@ -51,8 +51,8 @@ func doAdd(ctx *cli.Context) error { } pkg := config.Package{ - Name: nameAnswer, - URL: goGetAnswer, + Name: nameAnswer, + Import: goGetAnswer, } if !ctx.Bool("force") { for idx, p := range config.Packages { @@ -75,6 +75,7 @@ func doAdd(ctx *cli.Context) error { break } } + config.Packages = append(config.Packages, pkg) } else { config.Packages = append(config.Packages, pkg) } diff --git a/cmd/cmd.go b/cmd/cmd.go index a4f0df8..fc333ba 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -1,7 +1,7 @@ package cmd import ( - "gitea.com/gpm/cli/modules/config" + "gitea.com/gpm/gpm/modules/config" "github.com/urfave/cli/v2" ) @@ -9,7 +9,7 @@ var Flags = []cli.Flag{ &cli.StringFlag{ Name: "url", Aliases: []string{"u"}, - Usage: "gpm URL to use", + Usage: "gpm server to use", Value: config.GPMURL, }, } diff --git a/cmd/config.go b/cmd/config.go new file mode 100644 index 0000000..66bbb34 --- /dev/null +++ b/cmd/config.go @@ -0,0 +1,34 @@ +package cmd + +import ( + "gitea.com/gpm/gpm/modules/config" + "gitea.com/jolheiser/beaver" + "github.com/AlecAivazis/survey/v2" + "github.com/urfave/cli/v2" +) + +var Config = cli.Command{ + Name: "config", + Aliases: []string{"cfg"}, + Action: doConfig, +} + +func doConfig(ctx *cli.Context) error { + urlQuestion := &survey.Input{ + Message: "gpm URL", + Default: "gpm.jolheiser.com", + } + var urlAnswer string + + if err := survey.AskOne(urlQuestion, &urlAnswer); err != nil { + return err + } + + config.GPMURL = urlAnswer + if err := config.Save(); err != nil { + return err + } + + beaver.Info("gpm URL saved!") + return nil +} diff --git a/cmd/export.go b/cmd/export.go index f28a36f..eb5713a 100644 --- a/cmd/export.go +++ b/cmd/export.go @@ -1,9 +1,8 @@ package cmd import ( - "encoding/json" "fmt" - "gitea.com/gpm/cli/modules/config" + "gitea.com/gpm/gpm/modules/config" "github.com/urfave/cli/v2" ) @@ -15,11 +14,11 @@ var Export = cli.Command{ func doExport(ctx *cli.Context) error { - data, err := json.Marshal(config.Packages) + export, err := config.Export() if err != nil { return err } - fmt.Println(string(data)) + fmt.Println(export) return nil } diff --git a/cmd/get.go b/cmd/get.go index 65ea804..43353bc 100644 --- a/cmd/get.go +++ b/cmd/get.go @@ -3,7 +3,7 @@ package cmd import ( "encoding/json" "fmt" - "gitea.com/gpm/cli/modules/config" + "gitea.com/gpm/gpm/modules/config" "gitea.com/jolheiser/beaver" "github.com/AlecAivazis/survey/v2" "github.com/urfave/cli/v2" @@ -54,6 +54,8 @@ func doGet(ctx *cli.Context) error { } url = u } + + beaver.Infof("getting `%s`...", pkg) if err := goGet(url); err != nil { beaver.Error(err) } diff --git a/cmd/remove.go b/cmd/remove.go index 543f9ed..6e09ddb 100644 --- a/cmd/remove.go +++ b/cmd/remove.go @@ -2,7 +2,7 @@ package cmd import ( "fmt" - "gitea.com/gpm/cli/modules/config" + "gitea.com/gpm/gpm/modules/config" "gitea.com/jolheiser/beaver" "github.com/AlecAivazis/survey/v2" "github.com/urfave/cli/v2" @@ -28,7 +28,7 @@ func doRemove(ctx *cli.Context) error { for idx, p := range config.Packages { if strings.EqualFold(p.Name, pkgAnswer) { confirm := &survey.Confirm{ - Message: fmt.Sprintf("Are you sure you want to remove %s (%s) ?", p.Name, p.URL), + Message: fmt.Sprintf("Are you sure you want to remove %s (%s) ?", p.Name, p.Import), Default: false, } var answer bool diff --git a/go.mod b/go.mod index 4555aa8..f1c8545 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module gitea.com/gpm/cli +module gitea.com/gpm/gpm go 1.13 diff --git a/main.go b/main.go index 920e50f..479323e 100644 --- a/main.go +++ b/main.go @@ -1,7 +1,7 @@ package main import ( - "gitea.com/gpm/cli/cmd" + "gitea.com/gpm/gpm/cmd" "gitea.com/jolheiser/beaver" "github.com/urfave/cli/v2" "os" @@ -22,6 +22,7 @@ func main() { &cmd.Remove, &cmd.Get, &cmd.Export, + &cmd.Config, } app.Flags = cmd.Flags app.EnableBashCompletion = true diff --git a/modules/config/config.go b/modules/config/config.go index 87f6126..cdd8075 100644 --- a/modules/config/config.go +++ b/modules/config/config.go @@ -1,6 +1,7 @@ package config import ( + "encoding/json" "fmt" "gitea.com/jolheiser/beaver" "github.com/BurntSushi/toml" @@ -21,13 +22,13 @@ var ( ) type config struct { - GPMURL string `toml:"gpm-url"` - Packages []Package `toml:"package"` + GPMURL string `toml:"gpm-url" json:"gpm_url"` + Packages []Package `toml:"package" json:"packages"` } type Package struct { - Name string `toml:"name"` - URL string `toml:"url"` + Name string `toml:"name" json:"name"` + Import string `toml:"import" json:"import"` } // Load on init so that CLI contexts are correctly populated @@ -82,10 +83,15 @@ func Save() error { return nil } +func Export() (string, error) { + data, err := json.Marshal(cfg) + return string(data), err +} + func PackageMap() map[string]string { pkgs := make(map[string]string) for _, pkg := range Packages { - pkgs[pkg.Name] = pkg.URL + pkgs[pkg.Name] = pkg.Import } return pkgs }