in proxy.go [48:94]
func main() {
flag.Parse()
// show version number
if *version {
fmt.Printf("OpenWhisk ActionLoop Proxy v%s, built with %s\n", openwhisk.Version, runtime.Version())
return
}
// debugging
if *debug {
// set debugging flag, propagated to the actions
openwhisk.Debugging = true
os.Setenv("OW_DEBUG", "1")
}
proxyMode := openwhisk.ProxyModeNone
useProxyClient := os.Getenv("OW_ACTIVATE_PROXY_CLIENT")
if useProxyClient == "1" {
openwhisk.Debug("OW_ACTIVATE_PROXY_CLIENT set. Using runtime as a forward proxy.")
proxyMode = openwhisk.ProxyModeClient
}
useProxyServer := os.Getenv("OW_ACTIVATE_PROXY_SERVER")
if useProxyServer == "1" {
openwhisk.Debug("OW_ACTIVATE_PROXY_SERVER set. Using runtime as a proxy server.")
proxyMode = openwhisk.ProxyModeServer
}
// create the action proxy
ap := openwhisk.NewActionProxy("./action", os.Getenv("OW_COMPILER"), os.Stdout, os.Stderr, proxyMode)
// compile on the fly upon request
if *compile != "" {
ap.ExtractAndCompileIO(os.Stdin, os.Stdout, *compile, *env)
return
}
if useProxyClient == "1" {
// hook exit signals for remote action cleanup
go ap.HookExitSignals()
}
// start the balls rolling
openwhisk.Debug("OpenWhisk ActionLoop Proxy %s: starting", openwhisk.Version)
ap.Start(8080)
}