github.com/fitzoh/maven-push-plugin@v0.4.0/args.go (about)

     1  package main
     2  
     3  import (
     4  	"github.com/jessevdk/go-flags"
     5  	"strings"
     6  )
     7  
     8  func ParseArgs(args []string) (MavenPushCommand, error) {
     9  	var command MavenPushCommand
    10  	parser := flags.NewParser(&command, flags.None)
    11  	_, err := parser.ParseArgs(args)
    12  	if err != nil {
    13  		return command, err
    14  	}
    15  	return command, nil
    16  }
    17  
    18  func RemoveMavenArgs(args []string) []string {
    19  	return removeArgs(args, "--maven-")
    20  }
    21  
    22  func RemoveRemoteManifestArgs(args []string) []string {
    23  	return removeArgs(args, "--remote-manifest-")
    24  }
    25  
    26  func removeArgs(args []string, prefix string) []string {
    27  	for i, arg := range args {
    28  		if strings.HasPrefix(arg, prefix) {
    29  			return removeArgs(removeSingleArg(args, arg, i), prefix)
    30  		}
    31  	}
    32  	return args
    33  }
    34  
    35  func removeSingleArg(args []string, arg string, i int) []string {
    36  	argsRemoved := 2
    37  	if strings.Contains(arg, "=") {
    38  		argsRemoved = 1
    39  	}
    40  	return append(args[0:i], args[i+argsRemoved:]...)
    41  }