refactor: move main package to root dir

This commit is contained in:
DataHearth 2022-09-04 19:31:43 +02:00
parent 1ed6c6259e
commit 6ad6b7b32d
No known key found for this signature in database
GPG Key ID: E88FD356ACC5F3C4
3 changed files with 34 additions and 27 deletions

View File

@ -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.2",
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
View File

@ -1,4 +1,4 @@
module github.com/datahearth/doggo-fetcher
module gitea.antoine-langlois.net/DataHearth/doggo-fetcher
go 1.18

9
main.go Normal file
View File

@ -0,0 +1,9 @@
package main
import "gitea.antoine-langlois.net/DataHearth/doggo-fetcher/cmd"
func main() {
if err := cmd.Execute(); err != nil {
cmd.Logger.Errorln(err)
}
}