mirror of
https://github.com/caddyserver/caddy.git
synced 2026-07-11 03:14:19 +00:00
Added support for environment variables to 'templates' module. (#1035)
* * Added support for environment variables to 'templates' module. * Fixed flaw in test caused by environment variable ordering during testing on CI. * Updated some local variables to camel-case. * Reverted changes to replacer as environment variables are processed elsewhere. * Removed PrintEnv functionality in favour of documenting using template range.
This commit is contained in:
parent
eb3bbc409f
commit
45ac11088e
3 changed files with 43 additions and 2 deletions
|
|
@ -13,6 +13,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/russross/blackfriday"
|
||||
"os"
|
||||
)
|
||||
|
||||
// This file contains the context and functions available for
|
||||
|
|
@ -57,6 +58,19 @@ func (c Context) Header(name string) string {
|
|||
return c.Req.Header.Get(name)
|
||||
}
|
||||
|
||||
// Env gets a map of the environment variables.
|
||||
func (c Context) Env() map[string]string {
|
||||
osEnv := os.Environ()
|
||||
envVars := make(map[string]string, len(osEnv))
|
||||
for _, env := range osEnv {
|
||||
data := strings.SplitN(env, "=", 2)
|
||||
if len(data) == 2 {
|
||||
envVars[data[0]] = data[1]
|
||||
}
|
||||
}
|
||||
return envVars
|
||||
}
|
||||
|
||||
// IP gets the (remote) IP address of the client making the request.
|
||||
func (c Context) IP() string {
|
||||
ip, _, err := net.SplitHostPort(c.Req.RemoteAddr)
|
||||
|
|
@ -243,11 +257,16 @@ func (c Context) ToUpper(s string) string {
|
|||
return strings.ToUpper(s)
|
||||
}
|
||||
|
||||
// Split is a passthrough to strings.Split. It will split the first argument at each instance of the separator and return a slice of strings.
|
||||
// Split is a pass-through to strings.Split. It will split the first argument at each instance of the separator and return a slice of strings.
|
||||
func (c Context) Split(s string, sep string) []string {
|
||||
return strings.Split(s, sep)
|
||||
}
|
||||
|
||||
// Join is a pass-through to strings.Join. It will join the first argument slice with the separator in the second argument and return the result.
|
||||
func (c Context) Join(a []string, sep string) string {
|
||||
return strings.Join(a, sep)
|
||||
}
|
||||
|
||||
// Slice will convert the given arguments into a slice.
|
||||
func (c Context) Slice(elems ...interface{}) []interface{} {
|
||||
return elems
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue