From e1502fe8728e6357b0257860e44a593b027a6a95 Mon Sep 17 00:00:00 2001 From: kolaente Date: Wed, 2 Sep 2020 22:04:25 +0200 Subject: [PATCH] Fix release:os-package --- magefile.go | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/magefile.go b/magefile.go index ac41567fa..290fe41d2 100644 --- a/magefile.go +++ b/magefile.go @@ -528,28 +528,39 @@ func (Release) Check() error { // Creates a folder for each func (Release) OsPackage() error { p := RootPath + "/" + DIST + "/release/" - return filepath.Walk(p, func(path string, info os.FileInfo, err error) error { - if strings.Contains(info.Name(), ".sha256") { + + // We first put all files in a map to then iterate over it since the walk function would otherwise also iterate + // over the newly created files, creating some kind of endless loop. + bins := make(map[string]os.FileInfo) + if err := filepath.Walk(p, func(path string, info os.FileInfo, err error) error { + if strings.Contains(info.Name(), ".sha256") || info.IsDir() { return nil } + bins[path] = info + return nil + }); err != nil { + return err + } + for path, info := range bins { folder := p + info.Name() + "-full/" - if err := os.Mkdir(folder, 0755); err != nil { return err } if err := os.Rename(p+info.Name()+".sha256", folder+info.Name()+".sha256"); err != nil { return err } + if err := os.Rename(path, folder+info.Name()); err != nil { + return err + } if err := copyFile(RootPath+"/config.yml.sample", folder+"config.yml.sample"); err != nil { return err } if err := copyFile(RootPath+"/LICENSE", folder+"LICENSE"); err != nil { return err } - - return nil - }) + } + return nil } func (Release) Zip() {