cmdmain: guard ExtraFlagRegistration with a Once

Change-Id: Id54111dc21eeb61b02721117123b956fcc3b47fd
This commit is contained in:
Brad Fitzpatrick 2014-02-18 00:31:10 -08:00
parent a41cc2bab1
commit f99eaf5e36
1 changed files with 6 additions and 1 deletions

View File

@ -26,6 +26,7 @@ import (
"os"
"path/filepath"
"sort"
"sync"
"camlistore.org/pkg/buildinfo"
)
@ -212,10 +213,14 @@ func help(mode string) {
}
}
// registerFlagOnce guards ExtraFlagRegistration. Tests may invoke
// Main multiple times, but duplicate flag registration is fatal.
var registerFlagOnce sync.Once
// Main is meant to be the core of a command that has
// subcommands (modes), such as camput or camtool.
func Main() {
ExtraFlagRegistration()
registerFlagOnce.Do(ExtraFlagRegistration)
flag.Parse()
args := flag.Args()
if *FlagVersion {