47 lines
1.0 KiB
Go
47 lines
1.0 KiB
Go
package mage
|
|
|
|
var mageTpl = `// +build mage
|
|
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"os/exec"
|
|
|
|
"github.com/magefile/mage/mg" // mg contains helpful utility functions, like Deps
|
|
)
|
|
|
|
// Default target to run when none is specified
|
|
// If not set, running mage will list available targets
|
|
// var Default = Build
|
|
|
|
// A build step that requires additional params, or platform specific steps for example
|
|
func Build() error {
|
|
mg.Deps(InstallDeps)
|
|
fmt.Println("Building...")
|
|
cmd := exec.Command("go", "build", "-o", "MyApp", ".")
|
|
return cmd.Run()
|
|
}
|
|
|
|
// A custom install step if you need your bin someplace other than go/bin
|
|
func Install() error {
|
|
mg.Deps(Build)
|
|
fmt.Println("Installing...")
|
|
return os.Rename("./MyApp", "/usr/bin/MyApp")
|
|
}
|
|
|
|
// Manage your deps, or running package managers.
|
|
func InstallDeps() error {
|
|
fmt.Println("Installing Deps...")
|
|
cmd := exec.Command("go", "get", "github.com/stretchr/piglatin")
|
|
return cmd.Run()
|
|
}
|
|
|
|
// Clean up after yourself
|
|
func Clean() {
|
|
fmt.Println("Cleaning...")
|
|
os.RemoveAll("MyApp")
|
|
}
|
|
`
|