Skip to content

Commit

Permalink
tooling: check for missing dependencies when building Fider (#593)
Browse files Browse the repository at this point in the history
  • Loading branch information
nclandrei authored and goenning committed Oct 24, 2018
1 parent 63a1224 commit cab30ea
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .circleci/config.yml
@@ -1,7 +1,7 @@
version: 2
references:
builder: &builder
getfider/circleci:0.0.14
getfider/circleci:0.0.15
workdir: &workdir
/go/src/github.com/getfider/fider

Expand Down
33 changes: 33 additions & 0 deletions magefile.go
Expand Up @@ -3,14 +3,30 @@
package main

import (
"fmt"
"os"
"os/exec"
"runtime"
"time"

"github.com/magefile/mage/mg"
"github.com/magefile/mage/sh"
)

// warning shown when at least one dependency is not installed
var missingDepsWarning = `Dependencies %v are missing. Please install them and try again.
To learn how, visit our contributors guide: https://github.com/getfider/fider/blob/master/CONTRIBUTING.md.
`

// required dependencies for building fider
var requiredDeps = []string{
"air",
"godotenv",
"docker",
"npm",
"node",
"mage",
}
var buildTime = time.Now().Format("2006.01.02.150405")
var buildNumber = os.Getenv("CIRCLE_BUILD_NUM")
var exeName = "fider"
Expand All @@ -26,6 +42,12 @@ func init() {
if runtime.GOOS == "windows" {
exeName = "fider.exe"
}

missingDeps := missingDependencies()
if len(missingDeps) > 0 {
fmt.Printf(missingDepsWarning, missingDeps)
os.Exit(1)
}
}

func Run() error {
Expand Down Expand Up @@ -116,3 +138,14 @@ func buildServer(env map[string]string) error {
ldflags := "-s -w -X main.buildtime=" + buildTime + " -X main.buildnumber=" + buildNumber
return sh.RunWith(env, "go", "build", "-ldflags", ldflags, "-o", exeName, ".")
}

func missingDependencies() []string {
var missingDeps []string
for _, dep := range requiredDeps {
_, err := exec.LookPath(dep)
if err != nil {
missingDeps = append(missingDeps, dep)
}
}
return missingDeps
}

0 comments on commit cab30ea

Please sign in to comment.