refactor: move main package to root dir
This commit is contained in:
parent
44ee3eeff4
commit
32f7e5d0a6
|
@ -1,4 +1,4 @@
|
|||
package main
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
@ -10,7 +10,7 @@ import (
|
|||
"runtime"
|
||||
"strings"
|
||||
|
||||
"github.com/datahearth/doggo-fetcher/pkg"
|
||||
"gitea.antoine-langlois.net/DataHearth/doggo-fetcher/pkg"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
@ -18,7 +18,7 @@ import (
|
|||
var (
|
||||
dgfFolder = strings.Replace(pkg.DGF_FOLDER, "~", os.Getenv("HOME"), 1)
|
||||
re = regexp.MustCompile(`\d*\.?\d*\.?\d(rc|beta)?\d*?`)
|
||||
logger = &logrus.Logger{
|
||||
Logger = &logrus.Logger{
|
||||
Out: os.Stdout,
|
||||
Formatter: new(pkg.LoggerFormatter),
|
||||
Hooks: make(logrus.LevelHooks),
|
||||
|
@ -37,7 +37,7 @@ You can select a specific GoLang release or even set a specific one for director
|
|||
},
|
||||
},
|
||||
Suggest: true,
|
||||
Version: "0.1.0",
|
||||
Version: "0.1.1",
|
||||
Commands: []*cli.Command{
|
||||
{
|
||||
Name: "use",
|
||||
|
@ -112,21 +112,19 @@ Release(s) folder will be removed from "~/.local/doggofetcher" and thus not avai
|
|||
// todo: alias (set alias for a release)
|
||||
// todo: auto-use (automatically switch when changing directory)
|
||||
|
||||
func main() {
|
||||
func Execute() error {
|
||||
cli.VersionFlag = &cli.BoolFlag{
|
||||
Name: "version",
|
||||
Aliases: []string{"V"},
|
||||
Usage: "print the version",
|
||||
}
|
||||
|
||||
if err := app.Run(os.Args); err != nil {
|
||||
logger.Error(err)
|
||||
}
|
||||
return app.Run(os.Args)
|
||||
}
|
||||
|
||||
func use(ctx *cli.Context) error {
|
||||
if ctx.Bool("verbose") {
|
||||
logger.Level = logrus.DebugLevel
|
||||
Logger.Level = logrus.DebugLevel
|
||||
}
|
||||
|
||||
var release string
|
||||
|
@ -179,17 +177,17 @@ func use(ctx *cli.Context) error {
|
|||
return err
|
||||
}
|
||||
|
||||
logger.Info("Release not found, downloading...")
|
||||
Logger.Info("Release not found, downloading...")
|
||||
if err := r.DownloadRelease(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
logger.Info("Release downloaded, installing...")
|
||||
Logger.Info("Release downloaded, installing...")
|
||||
if err := r.ExtractRelease(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
logger.Debug("Release installed, generating hash...")
|
||||
Logger.Debug("Release installed, generating hash...")
|
||||
h, err := hash.GetFolderHash(r.GetReleaseFolder())
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -198,7 +196,7 @@ func use(ctx *cli.Context) error {
|
|||
return err
|
||||
}
|
||||
} else {
|
||||
logger.Debug("Release found, checking hash...")
|
||||
Logger.Debug("Release found, checking hash...")
|
||||
h, err := hash.GetFolderHash(r.GetReleaseFolder())
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -206,12 +204,12 @@ func use(ctx *cli.Context) error {
|
|||
|
||||
if err := hash.CompareReleaseHash(r.GetReleaseFolder(), h); err != nil {
|
||||
if err == pkg.ErrHashNotFound {
|
||||
logger.Warnln("Hash not found in hash table, adding...")
|
||||
Logger.Warnln("Hash not found in hash table, adding...")
|
||||
if err := hash.AddHash(r.GetReleaseFolder(), h); err != nil {
|
||||
return err
|
||||
}
|
||||
} else if err == pkg.ErrHashInvalid {
|
||||
logger.Warnln("Hash invalid, replacing...")
|
||||
Logger.Warnln("Hash invalid, replacing...")
|
||||
if err := hash.ReplaceHash(r.GetReleaseFolder(), h); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -221,21 +219,21 @@ func use(ctx *cli.Context) error {
|
|||
}
|
||||
}
|
||||
|
||||
logger.Info("Setting golang binary")
|
||||
Logger.Info("Setting golang binary")
|
||||
if err := pkg.UpdateRelease(r.GetReleaseFolder()); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
logger.Info("Everything done!")
|
||||
Logger.Info("Everything done!")
|
||||
return nil
|
||||
}
|
||||
|
||||
func initFunc(ctx *cli.Context) error {
|
||||
if ctx.Bool("verbose") {
|
||||
logger.Level = logrus.DebugLevel
|
||||
Logger.Level = logrus.DebugLevel
|
||||
}
|
||||
|
||||
return pkg.Init(logger)
|
||||
return pkg.Init(Logger)
|
||||
}
|
||||
|
||||
func uninstall(ctx *cli.Context) error {
|
||||
|
@ -244,7 +242,7 @@ func uninstall(ctx *cli.Context) error {
|
|||
|
||||
func ls(ctx *cli.Context) error {
|
||||
if ctx.Bool("verbose") {
|
||||
logger.Level = logrus.DebugLevel
|
||||
Logger.Level = logrus.DebugLevel
|
||||
}
|
||||
|
||||
items, err := os.ReadDir(dgfFolder)
|
||||
|
@ -263,7 +261,7 @@ func ls(ctx *cli.Context) error {
|
|||
|
||||
func remove(ctx *cli.Context) error {
|
||||
if ctx.Bool("verbose") {
|
||||
logger.Level = logrus.DebugLevel
|
||||
Logger.Level = logrus.DebugLevel
|
||||
}
|
||||
|
||||
if !ctx.Bool("all") {
|
||||
|
@ -288,13 +286,13 @@ func remove(ctx *cli.Context) error {
|
|||
}
|
||||
|
||||
if strings.Contains(runtime.Version(), ctx.Args().First()) {
|
||||
logger.Infoln("Removing installed version...")
|
||||
Logger.Infoln("Removing installed version...")
|
||||
if err := os.RemoveAll(filepath.Join(dgfFolder, "go")); err != nil {
|
||||
return fmt.Errorf("could not remove installed release %s: %s", release, err)
|
||||
}
|
||||
}
|
||||
|
||||
logger.Info("Release removed")
|
||||
Logger.Info("Release removed")
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -324,18 +322,18 @@ func remove(ctx *cli.Context) error {
|
|||
}
|
||||
}
|
||||
|
||||
logger.Infoln("Removing installed version...")
|
||||
Logger.Infoln("Removing installed version...")
|
||||
if err := os.RemoveAll(filepath.Join(dgfFolder, "go")); err != nil {
|
||||
return fmt.Errorf("could not remove installed release: %s", err)
|
||||
}
|
||||
|
||||
logger.Info("All releases removed")
|
||||
Logger.Info("All releases removed")
|
||||
return nil
|
||||
}
|
||||
|
||||
func execCommand(ctx *cli.Context) error {
|
||||
if ctx.Bool("verbose") {
|
||||
logger.Level = logrus.DebugLevel
|
||||
Logger.Level = logrus.DebugLevel
|
||||
}
|
||||
|
||||
if ctx.NArg() == 0 {
|
2
go.mod
2
go.mod
|
@ -1,4 +1,4 @@
|
|||
module github.com/datahearth/doggo-fetcher
|
||||
module gitea.antoine-langlois.net/DataHearth/doggo-fetcher
|
||||
|
||||
go 1.18
|
||||
|
||||
|
|
Reference in New Issue