summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/hashicorp/go-sockaddr/template/doc.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/hashicorp/go-sockaddr/template/doc.go')
-rw-r--r--vendor/github.com/hashicorp/go-sockaddr/template/doc.go311
1 files changed, 0 insertions, 311 deletions
diff --git a/vendor/github.com/hashicorp/go-sockaddr/template/doc.go b/vendor/github.com/hashicorp/go-sockaddr/template/doc.go
deleted file mode 100644
index 8cc6730a4..000000000
--- a/vendor/github.com/hashicorp/go-sockaddr/template/doc.go
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
-
-Package sockaddr/template provides a text/template interface the SockAddr helper
-functions. The primary entry point into the sockaddr/template package is
-through its Parse() call. For example:
-
- import (
- "fmt"
-
- template "github.com/hashicorp/go-sockaddr/template"
- )
-
- results, err := template.Parse(`{{ GetPrivateIP }}`)
- if err != nil {
- fmt.Errorf("Unable to find a private IP address: %v", err)
- }
- fmt.Printf("My Private IP address is: %s\n", results)
-
-Below is a list of builtin template functions and details re: their usage. It
-is possible to add additional functions by calling ParseIfAddrsTemplate
-directly.
-
-In general, the calling convention for this template library is to seed a list
-of initial interfaces via one of the Get*Interfaces() calls, then filter, sort,
-and extract the necessary attributes for use as string input. This template
-interface is primarily geared toward resolving specific values that are only
-available at runtime, but can be defined as a heuristic for execution when a
-config file is parsed.
-
-All functions, unless noted otherwise, return an array of IfAddr structs making
-it possible to `sort`, `filter`, `limit`, seek (via the `offset` function), or
-`unique` the list. To extract useful string information, the `attr` and `join`
-functions return a single string value. See below for details.
-
-Important note: see the
-https://github.com/hashicorp/go-sockaddr/tree/master/cmd/sockaddr utility for
-more examples and for a CLI utility to experiment with the template syntax.
-
-`GetAllInterfaces` - Returns an exhaustive set of IfAddr structs available on
-the host. `GetAllInterfaces` is the initial input and accessible as the initial
-"dot" in the pipeline.
-
-Example:
-
- {{ GetAllInterfaces }}
-
-
-`GetDefaultInterfaces` - Returns one IfAddr for every IP that is on the
-interface containing the default route for the host.
-
-Example:
-
- {{ GetDefaultInterfaces }}
-
-`GetPrivateInterfaces` - Returns one IfAddr for every forwardable IP address
-that is included in RFC 6890 and whose interface is marked as up. NOTE: RFC 6890 is a more exhaustive
-version of RFC1918 because it spans IPv4 and IPv6, however, RFC6890 does permit the
-inclusion of likely undesired addresses such as multicast, therefore our version
-of "private" also filters out non-forwardable addresses.
-
-Example:
-
- {{ GetPrivateInterfaces | sort "default" | join "address" " " }}
-
-
-`GetPublicInterfaces` - Returns a list of IfAddr structs whos IPs are
-forwardable, do not match RFC 6890, and whose interface is marked up.
-
-Example:
-
- {{ GetPublicInterfaces | sort "default" | join "name" " " }}
-
-
-`GetPrivateIP` - Helper function that returns a string of the first IP address
-from GetPrivateInterfaces.
-
-Example:
-
- {{ GetPrivateIP }}
-
-
-`GetPrivateIPs` - Helper function that returns a string of the all private IP
-addresses on the host.
-
-Example:
-
- {{ GetPrivateIPs }}
-
-
-`GetPublicIP` - Helper function that returns a string of the first IP from
-GetPublicInterfaces.
-
-Example:
-
- {{ GetPublicIP }}
-
-`GetPublicIPs` - Helper function that returns a space-delimited string of the
-all public IP addresses on the host.
-
-Example:
-
- {{ GetPrivateIPs }}
-
-
-`GetInterfaceIP` - Helper function that returns a string of the first IP from
-the named interface.
-
-Example:
-
- {{ GetInterfaceIP "en0" }}
-
-
-
-`GetInterfaceIPs` - Helper function that returns a space-delimited list of all
-IPs on a given interface.
-
-Example:
-
- {{ GetInterfaceIPs "en0" }}
-
-
-`sort` - Sorts the IfAddrs result based on its arguments. `sort` takes one
-argument, a list of ways to sort its IfAddrs argument. The list of sort
-criteria is comma separated (`,`):
- - `address`, `+address`: Ascending sort of IfAddrs by Address
- - `-address`: Descending sort of IfAddrs by Address
- - `default`, `+default`: Ascending sort of IfAddrs, IfAddr with a default route first
- - `-default`: Descending sort of IfAddrs, IfAttr with default route last
- - `name`, `+name`: Ascending sort of IfAddrs by lexical ordering of interface name
- - `-name`: Descending sort of IfAddrs by lexical ordering of interface name
- - `port`, `+port`: Ascending sort of IfAddrs by port number
- - `-port`: Descending sort of IfAddrs by port number
- - `private`, `+private`: Ascending sort of IfAddrs with private addresses first
- - `-private`: Descending sort IfAddrs with private addresses last
- - `size`, `+size`: Ascending sort of IfAddrs by their network size as determined
- by their netmask (larger networks first)
- - `-size`: Descending sort of IfAddrs by their network size as determined by their
- netmask (smaller networks first)
- - `type`, `+type`: Ascending sort of IfAddrs by the type of the IfAddr (Unix,
- IPv4, then IPv6)
- - `-type`: Descending sort of IfAddrs by the type of the IfAddr (IPv6, IPv4, Unix)
-
-Example:
-
- {{ GetPrivateInterfaces | sort "default,-type,size,+address" }}
-
-
-`exclude` and `include`: Filters IfAddrs based on the selector criteria and its
-arguments. Both `exclude` and `include` take two arguments. The list of
-available filtering criteria is:
- - "address": Filter IfAddrs based on a regexp matching the string representation
- of the address
- - "flag","flags": Filter IfAddrs based on the list of flags specified. Multiple
- flags can be passed together using the pipe character (`|`) to create an inclusive
- bitmask of flags. The list of flags is included below.
- - "name": Filter IfAddrs based on a regexp matching the interface name.
- - "network": Filter IfAddrs based on whether a netowkr is included in a given
- CIDR. More than one CIDR can be passed in if each network is separated by
- the pipe character (`|`).
- - "port": Filter IfAddrs based on an exact match of the port number (number must
- be expressed as a string)
- - "rfc", "rfcs": Filter IfAddrs based on the matching RFC. If more than one RFC
- is specified, the list of RFCs can be joined together using the pipe character (`|`).
- - "size": Filter IfAddrs based on the exact match of the mask size.
- - "type": Filter IfAddrs based on their SockAddr type. Multiple types can be
- specified together by using the pipe character (`|`). Valid types include:
- `ip`, `ipv4`, `ipv6`, and `unix`.
-
-Example:
-
- {{ GetPrivateInterfaces | exclude "type" "IPv6" }}
-
-
-`unique`: Removes duplicate entries from the IfAddrs list, assuming the list has
-already been sorted. `unique` only takes one argument:
- - "address": Removes duplicates with the same address
- - "name": Removes duplicates with the same interface names
-
-Example:
-
- {{ GetAllInterfaces | sort "default,-type,address" | unique "name" }}
-
-
-`limit`: Reduces the size of the list to the specified value.
-
-Example:
-
- {{ GetPrivateInterfaces | limit 1 }}
-
-
-`offset`: Seeks into the list by the specified value. A negative value can be
-used to seek from the end of the list.
-
-Example:
-
- {{ GetPrivateInterfaces | offset "-2" | limit 1 }}
-
-
-`math`: Perform a "math" operation on each member of the list and return new
-values. `math` takes two arguments, the attribute to operate on and the
-operation's value.
-
-Supported operations include:
-
- - `address`: Adds the value, a positive or negative value expressed as a
- decimal string, to the address. The sign is required. This value is
- allowed to over or underflow networks (e.g. 127.255.255.255 `"address" "+1"`
- will return "128.0.0.0"). Addresses will wrap at IPv4 or IPv6 boundaries.
- - `network`: Add the value, a positive or negative value expressed as a
- decimal string, to the network address. The sign is required. Positive
- values are added to the network address. Negative values are subtracted
- from the network's broadcast address (e.g. 127.0.0.1 `"network" "-1"` will
- return "127.255.255.255"). Values that overflow the network size will
- safely wrap.
- - `mask`: Applies the given network mask to the address. The network mask is
- expressed as a decimal value (e.g. network mask "24" corresponds to
- `255.255.255.0`). After applying the network mask, the network mask of the
- resulting address will be either the applied network mask or the network mask
- of the input address depending on which network is larger
- (e.g. 192.168.10.20/24 `"mask" "16"` will return "192.168.0.0/16" but
- 192.168.10.20/24 `"mask" "28"` will return "192.168.10.16/24").
-
-Example:
-
- {{ GetPrivateInterfaces | include "type" "IP" | math "address" "+256" | attr "address" }}
- {{ GetPrivateInterfaces | include "type" "IP" | math "address" "-256" | attr "address" }}
- {{ GetPrivateInterfaces | include "type" "IP" | math "network" "+2" | attr "address" }}
- {{ GetPrivateInterfaces | include "type" "IP" | math "network" "-2" | attr "address" }}
- {{ GetPrivateInterfaces | include "type" "IP" | math "mask" "24" | attr "address" }}
- {{ GetPrivateInterfaces | include "flags" "forwardable|up" | include "type" "IPv4" | math "network" "+2" | attr "address" }}
-
-
-`attr`: Extracts a single attribute of the first member of the list and returns
-it as a string. `attr` takes a single attribute name. The list of available
-attributes is type-specific and shared between `join`. See below for a list of
-supported attributes.
-
-Example:
-
- {{ GetAllInterfaces | exclude "flags" "up" | attr "address" }}
-
-
-`Attr`: Extracts a single attribute from an `IfAttr` and in every other way
-performs the same as the `attr`.
-
-Example:
-
- {{ with $ifAddrs := GetAllInterfaces | include "type" "IP" | sort "+type,+address" -}}
- {{- range $ifAddrs -}}
- {{- Attr "address" . }} -- {{ Attr "network" . }}/{{ Attr "size" . -}}
- {{- end -}}
- {{- end }}
-
-
-`join`: Similar to `attr`, `join` extracts all matching attributes of the list
-and returns them as a string joined by the separator, the second argument to
-`join`. The list of available attributes is type-specific and shared between
-`join`.
-
-Example:
-
- {{ GetAllInterfaces | include "flags" "forwardable" | join "address" " " }}
-
-
-`exclude` and `include` flags:
- - `broadcast`
- - `down`: Is the interface down?
- - `forwardable`: Is the IP forwardable?
- - `global unicast`
- - `interface-local multicast`
- - `link-local multicast`
- - `link-local unicast`
- - `loopback`
- - `multicast`
- - `point-to-point`
- - `unspecified`: Is the IfAddr the IPv6 unspecified address?
- - `up`: Is the interface up?
-
-
-Attributes for `attr`, `Attr`, and `join`:
-
-SockAddr Type:
- - `string`
- - `type`
-
-IPAddr Type:
- - `address`
- - `binary`
- - `first_usable`
- - `hex`
- - `host`
- - `last_usable`
- - `mask_bits`
- - `netmask`
- - `network`
- - `octets`: Decimal values per byte
- - `port`
- - `size`: Number of hosts in the network
-
-IPv4Addr Type:
- - `broadcast`
- - `uint32`: unsigned integer representation of the value
-
-IPv6Addr Type:
- - `uint128`: unsigned integer representation of the value
-
-UnixSock Type:
- - `path`
-
-*/
-package template