diff options
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/cmd.go | 50 | ||||
| -rw-r--r-- | cmd/format.go | 0 | ||||
| -rw-r--r-- | cmd/fscrypt/strings.go | 13 | ||||
| -rw-r--r-- | cmd/helper.go | 0 | ||||
| -rw-r--r-- | cmd/templates.go | 0 |
5 files changed, 57 insertions, 6 deletions
diff --git a/cmd/cmd.go b/cmd/cmd.go new file mode 100644 index 0000000..e2f0cf4 --- /dev/null +++ b/cmd/cmd.go @@ -0,0 +1,50 @@ +/* + * cmd.go - Main interface to cmd package (running, Cmd and Flag structs, etc) + * + * Copyright 2017 Google Inc. + * Author: Joe Richey (joerichey@google.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +// Package cmd is the common library for writing fscrypt command line binaries. +// This package is mainly a wrapper around github.com/urfave/cli, but provides +// additional support to make the usage look similar to the man page. +// +// The main componets are the `Cmd` and `Flag` types which can be used to define +// a top-level command with many potential subcommands. This package also +// presents a smaller interface than urfave/cli, making it easier to use for +// other commands. +package cmd + +// Command represents a command with many potential top-level commands. This is +// trand +type Cmd struct { + Name string + UsageLines []string + SubCmds []Cmd + Arguments []Argument + Flags []cli.Flag + Man *ManEntry + Action CommandFunc +} + +type Argument struct { + Name string + Usage string +} + +type ManEntry struct { + Title string + Section int +} diff --git a/cmd/format.go b/cmd/format.go new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/cmd/format.go diff --git a/cmd/fscrypt/strings.go b/cmd/fscrypt/strings.go index fb79c38..e90abe1 100644 --- a/cmd/fscrypt/strings.go +++ b/cmd/fscrypt/strings.go @@ -122,12 +122,9 @@ Options: {{end}}` ) -// Add words to this map to have pluralize support them. +// Add words to this map if pluralization does not just involve adding an s. var plurals = map[string]string{ - "argument": "arguments", - "filesystem": "filesystems", - "protector": "protectors", - "policy": "policies", + "policy": "policies", } // pluralize prints our the correct pluralization of a work along with the @@ -135,7 +132,11 @@ var plurals = map[string]string{ // pluralize(2, "policy") = "2 policies" func pluralize(count int, word string) string { if count != 1 { - word = plurals[word] + if plural, ok := plurals[word]; ok { + word = plural + } else { + word += "s" + } } return fmt.Sprintf("%d %s", count, word) } diff --git a/cmd/helper.go b/cmd/helper.go new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/cmd/helper.go diff --git a/cmd/templates.go b/cmd/templates.go new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/cmd/templates.go |