80 lines
2.9 KiB
Go
80 lines
2.9 KiB
Go
![]() |
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,
|
||
|
}
|
||
|
)
|