Skip to content

Commit

Permalink
Merge pull request #4 from gibsongd/dev
Browse files Browse the repository at this point in the history
fix cache, update fail messages
  • Loading branch information
fenix-hub committed Apr 1, 2022
2 parents 427234c + e1674e8 commit 5edb925
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 15 deletions.
32 changes: 19 additions & 13 deletions package_manager/main.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package packagemanager

import (
"errors"
"fmt"
"io/ioutil"
"os"
Expand All @@ -17,16 +18,21 @@ func Init() {

func clearAsset(asset string, folder string) error {
var assetPath string = filepath.Join(folder, asset)
fmt.Println(assetPath)
return os.RemoveAll(assetPath)
}

func clearCache(asset string) {
startSpinner("clearing cached "+formatAsset(asset), cacheSpinner)
if err := clearAsset(asset, cacheFolder); err == nil {
removeCachedAsset(asset)
stopSpinner(formatAsset(asset)+" cache cleared", cacheSpinner)
if archive, cached, err := lookForCachedAsset(asset); err == nil && archive != "" {
if err := clearAsset(filepath.Join(cached.Author, cached.Title), cacheFolder); err == nil {
removeCachedAsset(cached.Author + "/" + cached.Title)
stopSpinner(formatAsset(cached.Author+"/"+cached.Title)+" cache cleared", cacheSpinner)
} else {
failSpinner("could not find cached "+formatAsset(asset), err, cacheSpinner)
}
} else {
failSpinner("could not clear cached "+formatAsset(asset)+", reason: "+err.Error(), cacheSpinner)
failSpinner("could not clear cached "+formatAsset(asset), err, cacheSpinner)
}
}

Expand All @@ -36,7 +42,7 @@ func clearLocal(asset string) {
removeAddon(Folder(asset))
stopSpinner(formatAsset(asset)+" removed", cacheSpinner)
} else {
failSpinner("could not remove "+formatAsset(asset)+", reason: "+err.Error(), cacheSpinner)
failSpinner("could not remove "+formatAsset(asset), err, cacheSpinner)
}
}

Expand Down Expand Up @@ -82,7 +88,7 @@ func installAsset(addon Addon, archive string) {
startSpinner("installing "+formatAsset(asset), installSpinner)
folder, err := unzip(archive, addonsFolder)
if err != nil {
failSpinner("could not install "+formatAsset(asset)+", reason: "+err.Error(), installSpinner)
failSpinner("could not install "+formatAsset(asset), err, installSpinner)
return
}

Expand All @@ -105,13 +111,13 @@ func installByAuthor(asset string, clearCached bool) {

err := doGet("/asset?user="+author+"&godot_version=3.4", &assetResult)
if err != nil {
failSpinner("fetching failed, reason: "+err.Error(), findSpinner)
failSpinner("fetching failed", err, findSpinner)
return
}

// If there's a list, look for the asset
if len(assetResult.Result) < 1 {
failSpinner("couldn't find assets related to @"+author, findSpinner)
failSpinner("couldn't find assets related to @"+author, errors.New("author doesn't exist"), findSpinner)
}
for _, addon := range assetResult.Result {
if addon.Title == assetName {
Expand All @@ -122,8 +128,8 @@ func installByAuthor(asset string, clearCached bool) {
}

// If there's an asset, download it and install it
if toDownloadAddon.AssetId == "" {
failSpinner("couldn't find "+formatAsset(asset), findSpinner)
if toDownloadAddon == (Addon{}) {
failSpinner("couldn't find "+formatAsset(asset), errors.New("addon doesn't exist"), findSpinner)
return
}
stopSpinner(formatAsset(asset)+" fetched!", findSpinner)
Expand All @@ -138,7 +144,7 @@ func installById(assetId string) {
startSpinner("retrieving "+formatAsset(assetId)+" info", getSpinner)

if err := doGet("/asset/"+assetId, &toDownloadAddon); err != nil {
failSpinner("could not find "+formatAsset(assetId)+", reason: "+err.Error(), getSpinner)
failSpinner("could not find "+formatAsset(assetId), err, getSpinner)
return
}
stopSpinner(formatAsset(assetId)+" info retrieved!", getSpinner)
Expand All @@ -152,7 +158,7 @@ func installById(assetId string) {
var archive string = filepath.Join(assetFolder, toDownloadAddon.Version+"_"+toDownloadAddon.DownloadCommit+".zip")

if err := downloadFile(archive, toDownloadAddon.DownloadUrl); err != nil {
failSpinner("download failed, reason: "+err.Error(), downloadSpinner)
failSpinner("download failed", err, downloadSpinner)
return
}
stopSpinner(formatAsset(asset)+" downloaded!", downloadSpinner)
Expand All @@ -168,7 +174,7 @@ func uninstallAsset(asset string) {
return
}
}
failSpinner("couldn't find "+formatAsset(asset)+". Maybe it was already deleted or misstyped.", findSpinner)
failSpinner("couldn't find "+formatAsset(asset), errors.New("Maybe it was already deleted or misstyped."), findSpinner)
}

func InstallByConfig(clearCached bool) {
Expand Down
5 changes: 3 additions & 2 deletions package_manager/spinners.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ var cacheSpinner *yacspin.Spinner

var colorYellow string = "\033[33m"
var colorReset string = "\033[0m"
var colorRed string = "\033[31m"

func spinnerMessage(message string, spinner *yacspin.Spinner) {
spinner.Message(" " + message)
Expand All @@ -29,8 +30,8 @@ func stopSpinner(message string, spinner *yacspin.Spinner) {
spinner.Stop()
}

func failSpinner(message string, spinner *yacspin.Spinner) {
spinner.StopFailMessage(" " + message)
func failSpinner(message string, err error, spinner *yacspin.Spinner) {
spinner.StopFailMessage(" " + message + "; reason >> " + colorRed + err.Error() + colorReset)
spinner.StopFail()
}

Expand Down

0 comments on commit 5edb925

Please sign in to comment.