mirror of
https://github.com/foomo/squadron.git
synced 2025-10-16 12:35:42 +00:00
36 lines
770 B
Go
36 lines
770 B
Go
package actions
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
var cmdBuild = &cobra.Command{
|
|
Use: "build [SERVICE] -t {TAG}",
|
|
Short: "Build a service with a given tag",
|
|
Args: cobra.MinimumNArgs(1),
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
_, err := Build(args[0], FlagTag, FlagDir, FlagVerbose)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
},
|
|
}
|
|
|
|
func init() {
|
|
rootCmd.AddCommand(cmdBuild)
|
|
}
|
|
|
|
func Build(service, tag, dir string, flagVerbose bool) (string, error) {
|
|
svc, err := cnf.Service(service)
|
|
if err != nil {
|
|
return "", fmt.Errorf("service not found: %v", err)
|
|
}
|
|
output, err := svc.RunBuild(log, dir, tag, flagVerbose)
|
|
if err != nil {
|
|
return "", fmt.Errorf("could not build service: %v output:\n%v", svc.Name, output)
|
|
}
|
|
return output, nil
|
|
}
|