github.com/mook-as/cf-cli@v7.0.0-beta.28.0.20200120190804-b91c115fae48+incompatible/plugin/transition/run_plugin_v7.go (about)

     1  // +build V7
     2  
     3  package plugin_transition
     4  
     5  import (
     6  	netrpc "net/rpc"
     7  	"os"
     8  
     9  	"code.cloudfoundry.org/cli/actor/sharedaction"
    10  	"code.cloudfoundry.org/cli/actor/v7action"
    11  	"code.cloudfoundry.org/cli/command"
    12  	"code.cloudfoundry.org/cli/command/common"
    13  	"code.cloudfoundry.org/cli/command/translatableerror"
    14  	"code.cloudfoundry.org/cli/command/v7/shared"
    15  	"code.cloudfoundry.org/cli/plugin/v7/rpc"
    16  	"code.cloudfoundry.org/cli/util/configv3"
    17  	"code.cloudfoundry.org/clock"
    18  )
    19  
    20  func RunPlugin(plugin configv3.Plugin, ui command.UI) error {
    21  	config, err := configv3.LoadConfig(configv3.FlagOverride{
    22  		Verbose: common.Commands.VerboseOrVersion,
    23  	})
    24  
    25  	if err != nil {
    26  		if _, ok := err.(translatableerror.EmptyConfigError); !ok {
    27  			return err
    28  		}
    29  	}
    30  
    31  	sharedActor := sharedaction.NewActor(config)
    32  
    33  	ccClient, uaaClient, err := shared.GetNewClientsAndConnectToCF(config, ui, "")
    34  	if err != nil {
    35  		return err
    36  	}
    37  
    38  	v7Actor := v7action.NewActor(ccClient, config, sharedActor, uaaClient, clock.NewClock())
    39  
    40  	server := netrpc.NewServer()
    41  	rpcService, err := rpc.NewRpcService(nil, nil, nil, server, config, v7Actor)
    42  
    43  	if err != nil {
    44  		return err
    45  	}
    46  
    47  	rpc.RunMethod(rpcService, os.Args[1:], plugin)
    48  	return nil
    49  }