54 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
| package main
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"reflect"
 | |
| 
 | |
| 	"github.com/spf13/pflag"
 | |
| )
 | |
| 
 | |
| // printParallelOutput takes the map of parallel worker results and outputs them
 | |
| // to stdout
 | |
| func printParallelOutput(m map[string]error, errCount int) error {
 | |
| 	var lastError error
 | |
| 	for cid, result := range m {
 | |
| 		if result != nil {
 | |
| 			if errCount > 1 {
 | |
| 				fmt.Println(result.Error())
 | |
| 			}
 | |
| 			lastError = result
 | |
| 			continue
 | |
| 		}
 | |
| 		fmt.Println(cid)
 | |
| 	}
 | |
| 	return lastError
 | |
| }
 | |
| 
 | |
| // print results from CLI command
 | |
| func printCmdResults(ok []string, failures map[string]error) error {
 | |
| 	for _, id := range ok {
 | |
| 		fmt.Println(id)
 | |
| 	}
 | |
| 
 | |
| 	if len(failures) > 0 {
 | |
| 		keys := reflect.ValueOf(failures).MapKeys()
 | |
| 		lastKey := keys[len(keys)-1].String()
 | |
| 		lastErr := failures[lastKey]
 | |
| 		delete(failures, lastKey)
 | |
| 
 | |
| 		for _, err := range failures {
 | |
| 			outputError(err)
 | |
| 		}
 | |
| 		return lastErr
 | |
| 	}
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| // markFlagHiddenForRemoteClient makes the flag not appear as part of the CLI
 | |
| // on the remote-client
 | |
| func markFlagHiddenForRemoteClient(flagName string, flags *pflag.FlagSet) {
 | |
| 	if remoteclient {
 | |
| 		flags.MarkHidden(flagName)
 | |
| 	}
 | |
| }
 |