envfunc

package module
v0.0.0-...-72537b8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 3, 2019 License: MIT Imports: 5 Imported by: 0

README

gocty-envfunc-go

gocty-envfunc-go defines the environment function.

  • RegisterBoolEnv
  • RegisterIntEnv
  • RegisterStringEnv

Documentation

Overview

Package envfunc defines the environment function.

Index

Constants

This section is empty.

Variables

View Source
var EnvBoolFunc = function.New(&function.Spec{
	Params: []function.Parameter{
		{
			Name:             "name",
			Type:             cty.String,
			AllowDynamicType: true,
		},
	},
	Type: function.StaticReturnType(cty.Bool),
	Impl: func(args []cty.Value, retType cty.Type) (cty.Value, error) {
		e := args[0].AsString()

		s, ok := boolEnvs[e]
		if !ok {
			return cty.Value{}, fmt.Errorf("env: %s does not register", e)
		}

		v := os.Getenv(e)
		if v == "" {
			s.v = s.d
			return cty.BoolVal(s.d), nil
		}

		var err error
		s.v, err = strconv.ParseBool(v)
		if err != nil {
			s.v = s.d
		}

		return cty.BoolVal(s.v), nil
	},
})

EnvBoolFunc returns a function that read bool type from registered env.

View Source
var EnvIntFunc = function.New(&function.Spec{
	Params: []function.Parameter{
		{
			Name:             "name",
			Type:             cty.String,
			AllowDynamicType: true,
		},
	},
	Type: function.StaticReturnType(cty.Number),
	Impl: func(args []cty.Value, retType cty.Type) (cty.Value, error) {
		e := args[0].AsString()

		s, ok := intEnvs[e]
		if !ok {
			return cty.Value{}, fmt.Errorf("env: %s does not register", e)
		}

		v := os.Getenv(e)
		if v == "" {
			s.v = s.d
			return cty.NumberIntVal(int64(s.d)), nil
		}

		i, err := strconv.ParseInt(v, 10, 64)
		s.v = int(i)
		return cty.NumberIntVal(i), err
	},
})

EnvIntFunc returns a function that read int type from registered env.

View Source
var EnvStringFunc = function.New(&function.Spec{
	Params: []function.Parameter{
		{
			Name:             "name",
			Type:             cty.String,
			AllowDynamicType: true,
		},
	},
	Type: function.StaticReturnType(cty.String),
	Impl: func(args []cty.Value, retType cty.Type) (cty.Value, error) {
		e := args[0].AsString()

		s, ok := stringEnvs[e]
		if !ok {
			return cty.Value{}, fmt.Errorf("env: %s does not register", e)
		}

		v := os.Getenv(e)
		if v == "" {
			v = s.d
		}
		s.v = v

		return cty.StringVal(v), nil
	},
})

EnvStringFunc returns a function that read string type from registered env.

Functions

func RangeBoolEnv

func RangeBoolEnv(fn func(name, desc string, d bool))

RangeBoolEnv iterates over the bool environment.

func RangeIntEnv

func RangeIntEnv(fn func(name, desc string, d int))

RangeIntEnv iterates over the int environment.

func RangeStringEnv

func RangeStringEnv(fn func(name, desc, d string))

RangeStringEnv iterates over the string environment.

func RegisterBoolEnv

func RegisterBoolEnv(name, desc string, d bool)

RegisterBoolEnv registers a bool to env.

func RegisterIntEnv

func RegisterIntEnv(name, desc string, d int)

RegisterIntEnv registers a int to env.

func RegisterStringEnv

func RegisterStringEnv(name, desc, d string)

RegisterStringEnv registers a string to env.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL