blob: 0e62da7aa766ef3374b16f29560343631bd2ff8b [file]
/*
Copyright © 2021 Aspect Build Systems Inc
Not licensed for re-use.
*/
package main
import (
"errors"
"fmt"
"os"
"aspect.build/cli/cmd/aspect/root"
"aspect.build/cli/pkg/aspecterrors"
)
func main() {
// Detect whether we are being run as a tools/bazel wrapper (look for BAZEL_REAL in the environment)
// If so,
// Is this a bazel-native command? just call through to bazel without touching the arguments for now
// Is this an aspect-custom command? (like `outputs`) then write an implementation
// otherwise,
// we are installing ourselves. Check with the user they intended to do that.
// then create
// - a WORKSPACE file, ask the user for the repository name if interactive
// ask the user if they want to install for all users of the workspace, if so
// - tools/bazel file and put our bootstrap code in there
//
cmd := root.NewDefaultRootCmd()
if err := cmd.Execute(); err != nil {
var exitErr *aspecterrors.ExitError
if errors.As(err, &exitErr) {
if exitErr.Err != nil {
fmt.Fprintln(os.Stderr, "Error:", err)
}
os.Exit(exitErr.ExitCode)
}
fmt.Fprintln(os.Stderr, "Error:", err)
os.Exit(1)
}
}