summaryrefslogtreecommitdiff
path: root/vendor/github.com/renstrom
diff options
context:
space:
mode:
authorMatthew Heon <matthew.heon@gmail.com>2017-11-01 11:24:59 -0400
committerMatthew Heon <matthew.heon@gmail.com>2017-11-01 11:24:59 -0400
commita031b83a09a8628435317a03f199cdc18b78262f (patch)
treebc017a96769ce6de33745b8b0b1304ccf38e9df0 /vendor/github.com/renstrom
parent2b74391cd5281f6fdf391ff8ad50fd1490f6bf89 (diff)
downloadpodman-a031b83a09a8628435317a03f199cdc18b78262f.tar.gz
podman-a031b83a09a8628435317a03f199cdc18b78262f.tar.bz2
podman-a031b83a09a8628435317a03f199cdc18b78262f.zip
Initial checkin from CRI-O repo
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
Diffstat (limited to 'vendor/github.com/renstrom')
-rw-r--r--vendor/github.com/renstrom/dedent/LICENSE21
-rw-r--r--vendor/github.com/renstrom/dedent/README.md50
-rw-r--r--vendor/github.com/renstrom/dedent/dedent.go56
3 files changed, 127 insertions, 0 deletions
diff --git a/vendor/github.com/renstrom/dedent/LICENSE b/vendor/github.com/renstrom/dedent/LICENSE
new file mode 100644
index 000000000..66a9870fc
--- /dev/null
+++ b/vendor/github.com/renstrom/dedent/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Peter Renström
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/vendor/github.com/renstrom/dedent/README.md b/vendor/github.com/renstrom/dedent/README.md
new file mode 100644
index 000000000..35b5aa134
--- /dev/null
+++ b/vendor/github.com/renstrom/dedent/README.md
@@ -0,0 +1,50 @@
+# Dedent
+
+[![Build Status](https://travis-ci.org/renstrom/dedent.svg?branch=master)](https://travis-ci.org/renstrom/dedent)
+[![Godoc](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat)](https://godoc.org/github.com/renstrom/dedent)
+
+Removes common leading whitespace from multiline strings. Inspired by [`textwrap.dedent`](https://docs.python.org/3/library/textwrap.html#textwrap.dedent) in Python.
+
+## Usage / example
+
+Imagine the following snippet that prints a multiline string. You want the indentation to both look nice in the code as well as in the actual output.
+
+```go
+package main
+
+import (
+ "fmt"
+
+ "github.com/renstrom/dedent"
+)
+
+func main() {
+ s := `Lorem ipsum dolor sit amet,
+ consectetur adipiscing elit.
+ Curabitur justo tellus, facilisis nec efficitur dictum,
+ fermentum vitae ligula. Sed eu convallis sapien.`
+ fmt.Println(dedent.Dedent(s))
+ fmt.Println("-------------")
+ fmt.Println(s)
+}
+```
+
+To illustrate the difference, here's the output:
+
+
+```bash
+$ go run main.go
+Lorem ipsum dolor sit amet,
+consectetur adipiscing elit.
+Curabitur justo tellus, facilisis nec efficitur dictum,
+fermentum vitae ligula. Sed eu convallis sapien.
+-------------
+Lorem ipsum dolor sit amet,
+ consectetur adipiscing elit.
+ Curabitur justo tellus, facilisis nec efficitur dictum,
+ fermentum vitae ligula. Sed eu convallis sapien.
+```
+
+## License
+
+MIT
diff --git a/vendor/github.com/renstrom/dedent/dedent.go b/vendor/github.com/renstrom/dedent/dedent.go
new file mode 100644
index 000000000..f58dc47d5
--- /dev/null
+++ b/vendor/github.com/renstrom/dedent/dedent.go
@@ -0,0 +1,56 @@
+package dedent
+
+import (
+ "regexp"
+ "strings"
+)
+
+var whitespaceOnly = regexp.MustCompile("(?m)^[ \t]+$")
+var leadingWhitespace = regexp.MustCompile("(?m)(^[ \t]*)")
+
+// Dedent removes any common leading whitespace from every line in s.
+//
+// This can be used to make multiline strings to line up with the left edge of
+// the display, while still presenting them in the source code in indented
+// form.
+func Dedent(s string) string {
+ s = whitespaceOnly.ReplaceAllString(s, "")
+ margin := findMargin(s)
+ if len(margin) == 0 {
+ return s
+ }
+ return regexp.MustCompile("(?m)^"+margin).ReplaceAllString(s, "")
+}
+
+// Look for the longest leading string of spaces and tabs common to all lines.
+func findMargin(s string) string {
+ var margin string
+
+ indents := leadingWhitespace.FindAllString(s, -1)
+ numIndents := len(indents)
+ for i, indent := range indents {
+ // Don't use last row if it is empty
+ if i == numIndents-1 && indent == "" {
+ break
+ }
+
+ if margin == "" {
+ margin = indent
+ } else if strings.HasPrefix(indent, margin) {
+ // Current line more deeply indented than previous winner:
+ // no change (previous winner is still on top).
+ continue
+ } else if strings.HasPrefix(margin, indent) {
+ // Current line consistent with and no deeper than previous winner:
+ // it's the new winner.
+ margin = indent
+ } else {
+ // Current line and previous winner have no common whitespace:
+ // there is no margin.
+ margin = ""
+ break
+ }
+ }
+
+ return margin
+}