Skip to content

Commit

Permalink
Merge pull request #84 from fossas/feat/add-build-interactive
Browse files Browse the repository at this point in the history
feat(build): add interactive feedback to `fossa build`
  • Loading branch information
xizhao committed Mar 3, 2018
2 parents 01e3820 + 6411b37 commit dc0ac39
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions cmd/fossa/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ package main
import (
"fmt"
"os"
"time"

"github.com/briandowns/spinner"
"github.com/urfave/cli"

"github.com/fossas/fossa-cli/config"
Expand All @@ -21,30 +23,42 @@ func buildCmd(c *cli.Context) {
buildLogger.Fatal("No modules specified.")
}

for _, moduleConfig := range conf.Modules {
s := spinner.New(spinner.CharSets[11], 100*time.Millisecond)
s.Writer = os.Stderr
s.Suffix = " Initializing..."
s.Start()

for i, moduleConfig := range conf.Modules {
s.Suffix = fmt.Sprintf(" Running module build (%d/%d): %s", i+1, len(conf.Modules), moduleConfig.Name)
s.Restart()
builder, module, err := resolveModuleConfig(moduleConfig)
if err != nil {
s.Stop()
buildLogger.Fatalf("Failed to resolve modules: %s", err.Error())
}

err = builder.Initialize()
if err != nil {
s.Stop()
buildLogger.Fatalf("Failed to initialize build: %s", err.Error())
}

isBuilt, err := builder.IsBuilt(module, conf.AnalyzeCmd.AllowUnresolved)
if err != nil {
s.Stop()
buildLogger.Fatalf("Could not determine whether module %s is built: %s", module.Name, err.Error())
}
if isBuilt && !conf.BuildCmd.Force {
s.Stop()
buildLogger.Fatalf("Module %s appears to already be built. Refusing to continue. Use `--force` to force a rebuild.", module.Name)
}

err = builder.Build(module, conf.BuildCmd.Force)
if err != nil {
s.Stop()
buildLogger.Fatalf("Build failed on module %s: %s", module.Name, err.Error())
}
}

s.Stop()
fmt.Fprintln(os.Stderr, "Build succeeded, ready to analyze!")
}

0 comments on commit dc0ac39

Please sign in to comment.