func TestApp_RunAsSubcommandParseFlags(t *testing.T) { var context *cli.Context a := cli.NewApp() a.Commands = []cli.Command{ { Name: "foo", Action: func(c *cli.Context) { context = c }, Flags: []cli.Flag{ cli.StringFlag{ Name: "lang", Value: "english", Usage: "language for the greeting", }, }, Before: func(_ *cli.Context) error { return nil }, }, } a.Run([]string{"", "foo", "--lang", "spanish", "abcd"}) expect(t, context.Args().Get(0), "abcd") expect(t, context.String("lang"), "spanish") }
func readFiles(c *cli.Context) (issuer, responder, target *x509.Certificate, template ocsp.Response, pkcs11 PKCS11Config, err error) { // Issuer certificate issuerFileName := c.GlobalString("issuer") issuerBytes, err := ioutil.ReadFile(issuerFileName) if err != nil { return } issuer, err = x509.ParseCertificate(issuerBytes) if err != nil { return } // Responder certificate responderFileName := c.GlobalString("responder") responderBytes, err := ioutil.ReadFile(responderFileName) if err != nil { return } responder, err = x509.ParseCertificate(responderBytes) if err != nil { return } // Target certificate targetFileName := c.GlobalString("target") targetBytes, err := ioutil.ReadFile(targetFileName) if err != nil { return } target, err = x509.ParseCertificate(targetBytes) if err != nil { return } // OCSP template templateFileName := c.GlobalString("template") templateBytes, err := ioutil.ReadFile(templateFileName) if err != nil { return } err = json.Unmarshal(templateBytes, &template) if err != nil { return } // PKCS#11 config pkcs11FileName := c.GlobalString("pkcs11") pkcs11Bytes, err := ioutil.ReadFile(pkcs11FileName) if err != nil { return } err = json.Unmarshal(pkcs11Bytes, &pkcs11) return }
// Retrieve value of a required flag func requiredFlag(c *cli.Context, flag string) string { value := c.String(flag) if value == "" { fmt.Fprintf(os.Stderr, "missing required flag --%s\n", flag) os.Exit(1) } return value }
func loadConfig(c *cli.Context) (config cmd.Config, err error) { configFileName := c.GlobalString("config") configJSON, err := ioutil.ReadFile(configFileName) if err != nil { return } err = json.Unmarshal(configJSON, &config) return }
func setup(c *cli.Context) (statsd.Statter, *blog.AuditLogger, *rpc.StorageAuthorityClient) { configJSON, err := ioutil.ReadFile(c.GlobalString("config")) cmd.FailOnError(err, "Failed to read config file") var conf config err = json.Unmarshal(configJSON, &conf) cmd.FailOnError(err, "Failed to parse config file") stats, logger := cmd.StatsAndLogging(conf.Statsd, conf.Syslog) sa, err := rpc.NewStorageAuthorityClient("orphan-finder", &conf.AMQP, stats) cmd.FailOnError(err, "Failed to create SA client") return stats, logger, sa }
func setupFromContext(context *cli.Context) (*policy.PolicyAuthorityDatabaseImpl, string) { configFileName := context.GlobalString("config") configJSON, err := ioutil.ReadFile(configFileName) cmd.FailOnError(err, "Couldn't read configuration file") var c cmd.Config err = json.Unmarshal(configJSON, &c) cmd.FailOnError(err, "Couldn't unmarshal configuration object") dbMap, err := sa.NewDbMap(c.PA.DBConnect) cmd.FailOnError(err, "Failed to create DB map") padb, err := policy.NewPolicyAuthorityDatabaseImpl(dbMap) cmd.FailOnError(err, "Could not connect to PADB") ruleFile := context.GlobalString("rule-file") if ruleFile == "" { fmt.Println("rule-file argument is required") os.Exit(1) } return padb, ruleFile }