github.com/loggregator/cli@v6.33.1-0.20180224010324-82334f081791+incompatible/actor/pushaction/actor.go (about) 1 // Package pushaction contains the business logic for orchestrating a V2 app 2 // push. 3 package pushaction 4 5 import ( 6 "regexp" 7 8 "code.cloudfoundry.org/cli/util/randomword" 9 ) 10 11 // Warnings is a list of warnings returned back from the cloud controller 12 type Warnings []string 13 14 // Actor handles all business logic for Cloud Controller v2 operations. 15 type Actor struct { 16 SharedActor SharedActor 17 V2Actor V2Actor 18 WordGenerator RandomWordGenerator 19 20 startWithProtocol *regexp.Regexp 21 urlValidator *regexp.Regexp 22 } 23 24 const ProtocolRegexp = "^https?://|^tcp://" 25 const URLRegexp = "^(?:https?://|tcp://)?(?:(?:[\\w-]+\\.)|(?:[*]\\.))+\\w+(?:\\:\\d+)?(?:/.*)*(?:\\.\\w+)?$" 26 27 // NewActor returns a new actor. 28 func NewActor(v2Actor V2Actor, sharedActor SharedActor) *Actor { 29 return &Actor{ 30 SharedActor: sharedActor, 31 V2Actor: v2Actor, 32 WordGenerator: new(randomword.Generator), 33 34 startWithProtocol: regexp.MustCompile(ProtocolRegexp), 35 urlValidator: regexp.MustCompile(URLRegexp), 36 } 37 }