github.com/Benchkram/bob@v0.0.0-20220321080157-7c8f3876e225/cli/cmd_verify.go (about)

     1  package cli
     2  
     3  import (
     4  	"context"
     5  	"errors"
     6  	"fmt"
     7  	"os"
     8  
     9  	"github.com/Benchkram/bob/bob"
    10  	"github.com/Benchkram/bob/pkg/boblog"
    11  	"github.com/Benchkram/bob/pkg/usererror"
    12  	"github.com/Benchkram/errz"
    13  	"github.com/logrusorgru/aurora"
    14  	"github.com/spf13/cobra"
    15  )
    16  
    17  var verifyCmd = &cobra.Command{
    18  	Use:   "verify",
    19  	Short: "Verify bob.yaml files in a workspace",
    20  	Long:  ``,
    21  	Run: func(cmd *cobra.Command, args []string) {
    22  		runVerify()
    23  	},
    24  }
    25  
    26  func runVerify() {
    27  	exitCode := 0
    28  	defer func() {
    29  		if exitCode == 0 {
    30  			fmt.Printf("\n%s\n", aurora.Green("Verified"))
    31  			os.Exit(0)
    32  		} else {
    33  			fmt.Printf("\n%s\n", aurora.Red("Verification failed"))
    34  			os.Exit(exitCode)
    35  		}
    36  	}()
    37  
    38  	b, err := bob.Bob()
    39  	if err != nil {
    40  		exitCode = 1
    41  		if errors.As(err, &usererror.Err) {
    42  			boblog.Log.UserError(err)
    43  		} else {
    44  			errz.Log(err)
    45  		}
    46  	}
    47  
    48  	err = b.Verify(context.Background())
    49  	if err != nil {
    50  		exitCode = 1
    51  		if errors.As(err, &usererror.Err) {
    52  			boblog.Log.UserError(err)
    53  		} else {
    54  			errz.Log(err)
    55  		}
    56  	}
    57  }