github.com/attic-labs/noms@v0.0.0-20210827224422-e5fa29d95e8b/samples/go/nomdex/nomdex.go (about) 1 // Copyright 2016 Attic Labs, Inc. All rights reserved. 2 // Licensed under the Apache License, version 2.0: 3 // http://www.apache.org/licenses/LICENSE-2.0 4 5 package main 6 7 import ( 8 "fmt" 9 "os" 10 11 "github.com/attic-labs/kingpin" 12 13 "github.com/attic-labs/noms/go/d" 14 "github.com/attic-labs/noms/go/util/profile" 15 "github.com/attic-labs/noms/go/util/verbose" 16 ) 17 18 func main() { 19 registerUpdate() 20 registerFind() 21 verbose.RegisterVerboseFlags(kingpin.CommandLine) 22 profile.RegisterProfileFlags(kingpin.CommandLine) 23 24 switch kingpin.Parse() { 25 case "up": 26 runUpdate() 27 case "find": 28 runFind() 29 } 30 } 31 32 func printError(err error, msgAndArgs ...interface{}) bool { 33 if err != nil { 34 err := d.Unwrap(err) 35 switch len(msgAndArgs) { 36 case 0: 37 fmt.Fprintf(os.Stderr, "error: %s\n", err) 38 case 1: 39 fmt.Fprintf(os.Stderr, "%s%s\n", msgAndArgs[0], err) 40 default: 41 format, ok := msgAndArgs[0].(string) 42 if ok { 43 s1 := fmt.Sprintf(format, msgAndArgs[1:]...) 44 fmt.Fprintf(os.Stderr, "%s%s\n", s1, err) 45 } else { 46 fmt.Fprintf(os.Stderr, "error: %s\n", err) 47 } 48 } 49 } 50 return err != nil 51 }