github.com/arunkumar7540/cli@v6.45.0+incompatible/actor/v7pushaction/setup_application_for_push_plan.go (about)

     1  package v7pushaction
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/actor/v7action"
     5  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/constant"
     6  	"code.cloudfoundry.org/cli/util/manifestparser"
     7  )
     8  
     9  func SetupApplicationForPushPlan(pushPlan PushPlan, overrides FlagOverrides, manifestApp manifestparser.Application) (PushPlan, error) {
    10  	application := v7action.Application{Name: manifestApp.Name}
    11  
    12  	var applicationNeedsUpdate bool
    13  
    14  	if buildpacksPresent(overrides) {
    15  		application.LifecycleType = constant.AppLifecycleTypeBuildpack
    16  		application.LifecycleBuildpacks = overrides.Buildpacks
    17  		applicationNeedsUpdate = true
    18  	}
    19  
    20  	if stacksPresent(overrides) {
    21  		application.StackName = overrides.Stack
    22  		application.LifecycleType = constant.AppLifecycleTypeBuildpack
    23  		applicationNeedsUpdate = true
    24  	}
    25  
    26  	if overrides.DockerImage != "" || manifestApp.Docker != nil {
    27  		application.LifecycleType = constant.AppLifecycleTypeDocker
    28  	}
    29  
    30  	pushPlan.Application = application
    31  	pushPlan.ApplicationNeedsUpdate = applicationNeedsUpdate
    32  
    33  	return pushPlan, nil
    34  }
    35  
    36  func buildpacksPresent(overrides FlagOverrides) bool {
    37  	return len(overrides.Buildpacks) > 0
    38  }
    39  
    40  func stacksPresent(overrides FlagOverrides) bool {
    41  	return overrides.Stack != ""
    42  }