github.com/prysmaticlabs/prysm@v1.4.4/tools/specs-checker/main.go (about)

     1  package main
     2  
     3  import (
     4  	"embed"
     5  	"log"
     6  	"os"
     7  
     8  	"github.com/urfave/cli/v2"
     9  )
    10  
    11  var (
    12  	dirFlag = &cli.StringFlag{
    13  		Name:     "dir",
    14  		Value:    "",
    15  		Usage:    "Target directory",
    16  		Required: true,
    17  	}
    18  )
    19  
    20  //go:embed data
    21  var specFS embed.FS
    22  
    23  var specDirs = map[string][]string{
    24  	"specs/phase0": {
    25  		"beacon-chain.md",
    26  		"fork-choice.md",
    27  		"validator.md",
    28  		"weak-subjectivity.md",
    29  	},
    30  	"ssz": {
    31  		"merkle-proofs.md",
    32  	},
    33  }
    34  
    35  func main() {
    36  	app := &cli.App{
    37  		Name:        "Specs checker utility",
    38  		Description: "Checks that specs pseudo code used in comments is up to date",
    39  		Usage:       "helps keeping specs pseudo code up to date!",
    40  		Commands: []*cli.Command{
    41  			{
    42  				Name:  "check",
    43  				Usage: "Checks that all doc strings",
    44  				Flags: []cli.Flag{
    45  					dirFlag,
    46  				},
    47  				Action: check,
    48  			},
    49  			{
    50  				Name:   "download",
    51  				Usage:  "Downloads the latest specs docs",
    52  				Action: download,
    53  				Flags: []cli.Flag{
    54  					dirFlag,
    55  				},
    56  			},
    57  		},
    58  	}
    59  
    60  	err := app.Run(os.Args)
    61  	if err != nil {
    62  		log.Fatal(err)
    63  	}
    64  }