@@ -0,0 +1,29 @@ | |||
/* ---------------------------------------------------------------------- | |||
* ______ ___ __ | |||
* / ____/___ / | ____ __ ___ __/ /_ ___ ________ | |||
* / / __/ __ \/ /| | / __ \/ / / / | /| / / __ \/ _ \/ ___/ _ \ | |||
* / /_/ / /_/ / ___ |/ / / / /_/ /| |/ |/ / / / / __/ / / __/ | |||
* \____/\____/_/ |_/_/ /_/\__. / |__/|__/_/ /_/\___/_/ \___/ | |||
* /____/ | |||
* | |||
* (C) Copyright 2015 GoAnywhere (http://goanywhere.io). | |||
* ---------------------------------------------------------------------- | |||
* Licensed under the Apache License, Version 2.0 (the "License"); | |||
* you may not use this file except in compliance with the License. | |||
* You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Unless required by applicable law or agreed to in writing, software | |||
* distributed under the License is distributed on an "AS IS" BASIS, | |||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
* See the License for the specific language governing permissions and | |||
* limitations under the License. | |||
* ----------------------------------------------------------------------*/ | |||
package rex | |||
type options struct { | |||
debug bool | |||
port int | |||
maxprocs int | |||
} |
@@ -37,11 +37,7 @@ import ( | |||
var ( | |||
DefaultMux = New() | |||
options = struct { | |||
debug bool | |||
port int | |||
maxprocs int | |||
}{ | |||
config = &options{ | |||
debug: true, | |||
port: 5000, | |||
maxprocs: runtime.NumCPU(), | |||
@@ -115,9 +111,9 @@ func init() { | |||
env.Load(filepath.Join(root, ".env")) | |||
// cmd arguments | |||
flag.BoolVar(&options.debug, "debug", options.debug, "flag to toggle debug mode") | |||
flag.IntVar(&options.port, "port", options.port, "port to run the application server") | |||
flag.IntVar(&options.maxprocs, "maxprocs", options.maxprocs, "maximum cpu processes to run the server") | |||
flag.BoolVar(&config.debug, "debug", config.debug, "flag to toggle debug mode") | |||
flag.IntVar(&config.port, "port", config.port, "port to run the application server") | |||
flag.IntVar(&config.maxprocs, "maxprocs", config.maxprocs, "maximum cpu processes to run the server") | |||
flag.Parse() | |||
} |
@@ -161,14 +161,14 @@ func (self *Router) ServeHTTP(w http.ResponseWriter, r *http.Request) { | |||
// Run starts the application server to serve incoming requests at the given address. | |||
func (self *Router) Run() { | |||
runtime.GOMAXPROCS(options.maxprocs) | |||
runtime.GOMAXPROCS(config.maxprocs) | |||
go func() { | |||
time.Sleep(500 * time.Millisecond) | |||
Infof("Application server is listening at %d", options.port) | |||
Infof("Application server is listening at %d", config.port) | |||
}() | |||
if err := http.ListenAndServe(fmt.Sprintf(":%d", options.port), self); err != nil { | |||
if err := http.ListenAndServe(fmt.Sprintf(":%d", config.port), self); err != nil { | |||
Fatalf("Failed to start the server: %v", err) | |||
} | |||
} |