go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers-sdk/v1/lr/cli/cmd/parse.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package cmd 5 6 import ( 7 "encoding/json" 8 "fmt" 9 "os" 10 11 "github.com/rs/zerolog/log" 12 "github.com/spf13/cobra" 13 "go.mondoo.com/cnquery/providers-sdk/v1/lr" 14 ) 15 16 var parseCmd = &cobra.Command{ 17 Use: "parse", 18 Short: "parse an LR file", 19 Long: `parse an LR file and print the AST`, 20 Args: cobra.MinimumNArgs(1), 21 Run: func(cmd *cobra.Command, args []string) { 22 raw, err := os.ReadFile(args[0]) 23 if err != nil { 24 log.Error().Msg(err.Error()) 25 return 26 } 27 28 res, err := lr.Parse(string(raw)) 29 if err != nil { 30 log.Error().Msg(err.Error()) 31 return 32 } 33 34 s, _ := json.Marshal(res) 35 fmt.Println(string(s)) 36 }, 37 } 38 39 func init() { 40 rootCmd.AddCommand(parseCmd) 41 }