@@ -68,7 +68,6 @@ package main | |||
import ( | |||
"io" | |||
"github.com/goanywhere/env" | |||
"github.com/goanywhere/rex" | |||
) | |||
@@ -78,7 +77,7 @@ func index(w http.ResponseWriter, r *http.Request) { | |||
func main() { | |||
// Override default 5000 port here. | |||
env.Set("PORT", 9394) | |||
rex.Env.Set("PORT", 9394) | |||
rex.Get("/", index) | |||
rex.Run() | |||
} |
@@ -0,0 +1,19 @@ | |||
package rex | |||
import ( | |||
"flag" | |||
"runtime" | |||
) | |||
var ( | |||
debug bool | |||
port int | |||
maxprocs int | |||
) | |||
func configure() { | |||
flag.BoolVar(&debug, "debug", Env.Bool("DEBUG", true), "flag to toggle debug mode") | |||
flag.IntVar(&port, "port", Env.Int("PORT", 5000), "port to run the application server") | |||
flag.IntVar(&maxprocs, "maxprocs", Env.Int("MAXPROCS", runtime.NumCPU()), "maximum cpu processes to run the server") | |||
flag.Parse() | |||
} |
@@ -0,0 +1,60 @@ | |||
package internal | |||
import ( | |||
"path" | |||
"github.com/goanywhere/env" | |||
) | |||
type Env struct { | |||
Base string | |||
} | |||
func New(dotenv string) *Env { | |||
env.Load(dotenv) | |||
return &Env{Base: path.Base(dotenv)} | |||
} | |||
func (self *Env) Get(key string) (string, bool) { | |||
return env.Get(key) | |||
} | |||
func (self *Env) Set(key string, value interface{}) error { | |||
return env.Set(key, value) | |||
} | |||
func (self *Env) String(key string, fallback ...string) string { | |||
return env.String(key, fallback...) | |||
} | |||
func (self *Env) Strings(key string, fallback ...[]string) []string { | |||
return env.Strings(key, fallback...) | |||
} | |||
func (self *Env) Int(key string, fallback ...int) int { | |||
return env.Int(key, fallback...) | |||
} | |||
func (self *Env) Int64(key string, fallback ...int64) int64 { | |||
return env.Int64(key, fallback...) | |||
} | |||
func (self *Env) Uint(key string, fallback ...uint) uint { | |||
return env.Uint(key, fallback...) | |||
} | |||
func (self *Env) Uint64(key string, fallback ...uint64) uint64 { | |||
return env.Uint64(key, fallback...) | |||
} | |||
func (self *Env) Bool(key string, fallback ...bool) bool { | |||
return env.Bool(key, fallback...) | |||
} | |||
func (self *Env) Float(key string, fallback ...float64) float64 { | |||
return env.Float(key, fallback...) | |||
} | |||
func (self *Env) Map(spec interface{}) error { | |||
return env.Map(spec) | |||
} |
@@ -1,25 +0,0 @@ | |||
package rex | |||
import ( | |||
"flag" | |||
"runtime" | |||
"sync" | |||
"github.com/goanywhere/env" | |||
) | |||
var ( | |||
debug bool | |||
port int | |||
maxprocs int | |||
once sync.Once | |||
) | |||
func configure() { | |||
once.Do(func() { | |||
flag.BoolVar(&debug, "debug", env.Bool("DEBUG", true), "flag to toggle debug mode") | |||
flag.IntVar(&port, "port", env.Int("PORT", 5000), "port to run the application server") | |||
flag.IntVar(&maxprocs, "maxprocs", env.Int("MAXPROCS", runtime.NumCPU()), "maximum cpu processes to run the server") | |||
flag.Parse() | |||
}) | |||
} |
@@ -4,7 +4,6 @@ import ( | |||
"net/http" | |||
"path/filepath" | |||
"github.com/goanywhere/env" | |||
"github.com/goanywhere/fs" | |||
"github.com/goanywhere/rex/internal" | |||
. "github.com/goanywhere/rex/middleware" | |||
@@ -12,6 +11,7 @@ import ( | |||
var ( | |||
Default = New() | |||
Env *internal.Env | |||
) | |||
// Get is a shortcut for mux.HandleFunc(pattern, handler).Methods("GET"), | |||
@@ -73,7 +73,6 @@ func Run() { | |||
} | |||
func init() { | |||
var root = fs.Getcd(2) | |||
env.Set(internal.ROOT, root) | |||
env.Load(filepath.Join(root, ".env")) | |||
var basedir = fs.Getcd(2) | |||
Env = internal.New(filepath.Join(basedir, ".env")) | |||
} |