GoBroke/tplCmd/consts.go

80 lines
2.9 KiB
Go
Raw Normal View History

2025-02-04 12:14:08 -05:00
package tplCmd
import (
`context`
`net`
`net/netip`
`text/template`
`go4.org/netipx`
)
var (
// Funcs added externally to CombinedTplFuncMap will override any of the funcs defined here or in sprig.
CombinedTplFuncMap template.FuncMap = make(template.FuncMap)
// TODO: github.com/vishvananda/netlink funcs?
TplFuncs = template.FuncMap{
"GetCtx": context.Background,
// stdlib net funcs; everything missing you can get from a net.Resolver (see GetResolver/TplGetResolver)
"CIDRMask": net.CIDRMask,
"InterfaceAddrs": net.InterfaceAddrs,
"InterfaceByIndex": net.InterfaceByIndex,
"InterfaceByName": net.InterfaceByName,
"IPv4": net.IPv4,
"IPv4Mask": net.IPv4Mask,
"JoinHostPort": net.JoinHostPort,
"ParseIP": net.ParseIP,
"ParseMAC": net.ParseMAC,
"ResolveIPAddr": net.ResolveIPAddr,
"ResolveTCPAddr": net.ResolveTCPAddr,
"ResolveUDPAddr": net.ResolveUDPAddr,
"ResolveUnixAddr": net.ResolveUnixAddr,
"TCPAddrFromAddrPort": net.TCPAddrFromAddrPort,
"UDPAddrFromAddrPort": net.UDPAddrFromAddrPort,
// stdlib net/netip funcs
"AddrFrom16": netip.AddrFrom16,
"AddrFrom4": netip.AddrFrom4,
"AddrFromSlice": netip.AddrFromSlice,
"AddrPortFrom": netip.AddrPortFrom,
"IPv4Unspecified": netip.IPv4Unspecified,
"IPv6LinkLocalAllNodes": netip.IPv6LinkLocalAllNodes,
"IPv6LinkLocalAllRouters": netip.IPv6LinkLocalAllRouters,
"IPv6Loopback": netip.IPv6Loopback,
"IPv6Unspecified": netip.IPv6Unspecified,
"ParseAddr": netip.ParseAddr,
"ParseAddrPort": netip.ParseAddrPort,
"ParsePrefix": netip.ParsePrefix,
"PrefixFrom": netip.PrefixFrom,
// go4.org/netipx
"AddrIPNet": netipx.AddrIPNet,
"ComparePrefix": netipx.ComparePrefix,
"FromStdAddr": netipx.FromStdAddr,
"FromStdIP": netipx.FromStdIP,
"FromStdIPNet": netipx.FromStdIPNet,
"IPRangeFrom": netipx.IPRangeFrom,
"ParseIPRange": netipx.ParseIPRange,
"ParsePrefixOrAddr": netipx.ParsePrefixOrAddr,
"PrefixIPNet": netipx.PrefixIPNet,
"PrefixLastIP": netipx.PrefixLastIP,
"RangeOfPrefix": netipx.RangeOfPrefix,
// Custom-defined/compat wrappers
"GetIPSetBuilder": TplGetIPSetBuilder,
"GetResolver": TplGetResolver,
"SplitHostPortHost": TplSplitHostPortHost, // net.SplitHostPort
"SplitHostPortPort": TplSplitHostPortPort, // net.SplitHostPort
"ToCidrHost": TplToCidrHost, // net.ParseCIDR
"ToCidrNet": TplToCidrNet, // net.ParseCIDR
// Weak coercers and other funcs.
"IsNil": TplIsNil,
"ToBool": TplToBool,
"ToFloat": TplToFloat,
"ToInt": TplToInt,
"ToMap": TplToMap,
"ToString": TplToString,
"ToUint": TplToUint,
// Host information
"GetDefaultIface": GetDefaultIface,
"GetSITIface": GetSITIface,
}
)