services/magefiles/mage.go
Dan Anglin 67510372ee
build(mage): update downloadForgejo target
- refactor the downloadForgejo logic
- add a step to validate the binary's digest
2023-02-25 21:00:23 +00:00

55 lines
998 B
Go

//go:build mage
package main
import (
"fmt"
"os"
"github.com/magefile/mage/sh"
)
const (
configFile string = "./config/services.json"
rootBuildDir string = "./build"
templateExtension string = ".gotmpl"
rootTemplatesDir string = "./templates"
)
// Clean cleans the workspace.
func Clean() error {
buildDir := "./build"
objects, err := os.ReadDir(buildDir)
if err != nil {
return err
}
for i := range objects {
name := objects[i].Name()
if name != ".gitkeep" {
if err := sh.Rm(buildDir + "/" + name); err != nil {
return err
}
}
}
return nil
}
// DownloadForgejo downloads the Forgejo binary from Codeberg.
func DownloadForgejo() error {
cfg, err := newConfig(configFile)
if err != nil {
return fmt.Errorf("unable to load the configuration; %v", err)
}
version := cfg.Forgejo.Version
if err := downloadForgejo(version); err != nil {
return fmt.Errorf("an error occurred whilst getting the forgejo binary; %w", err)
}
return nil
}