github.com/khulnasoft-lab/tunnel-db@v0.0.0-20231117205118-74e1113bd007/pkg/app.go (about) 1 package pkg 2 3 import ( 4 "time" 5 6 "github.com/urfave/cli" 7 8 "github.com/khulnasoft-lab/tunnel-db/pkg/utils" 9 "github.com/khulnasoft-lab/tunnel-db/pkg/vulnsrc" 10 ) 11 12 type AppConfig struct{} 13 14 func (ac *AppConfig) NewApp(version string) *cli.App { 15 app := cli.NewApp() 16 app.Name = "tunnel-db" 17 app.Version = version 18 app.Usage = "Tunnel DB builder" 19 20 app.Commands = []cli.Command{ 21 { 22 Name: "build", 23 Usage: "build a database file", 24 Action: build, 25 Flags: []cli.Flag{ 26 cli.StringSliceFlag{ 27 Name: "only-update", 28 Usage: "update db only specified distribution", 29 Value: func() *cli.StringSlice { 30 var targets cli.StringSlice 31 for _, v := range vulnsrc.All { 32 targets = append(targets, string(v.Name())) 33 } 34 return &targets 35 }(), 36 }, 37 cli.StringFlag{ 38 Name: "cache-dir", 39 Usage: "cache directory path", 40 Value: utils.CacheDir(), 41 }, 42 cli.DurationFlag{ 43 Name: "update-interval", 44 Usage: "update interval", 45 Value: 24 * time.Hour, 46 EnvVar: "UPDATE_INTERVAL", 47 }, 48 }, 49 }, 50 } 51 52 return app 53 }