mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Add dedent pkg
This commit is contained in:
parent
d9cecdbc60
commit
77cfa34fd9
5
Godeps/Godeps.json
generated
5
Godeps/Godeps.json
generated
@ -1773,6 +1773,11 @@
|
|||||||
"Comment": "v1.0.0-920-g934dbf8",
|
"Comment": "v1.0.0-920-g934dbf8",
|
||||||
"Rev": "934dbf81977c67c521c75492dc1f55ca74dc5b04"
|
"Rev": "934dbf81977c67c521c75492dc1f55ca74dc5b04"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "github.com/renstrom/dedent",
|
||||||
|
"Comment": "v1.0.0-3-g020d11c",
|
||||||
|
"Rev": "020d11c3b9c0c7a3c2efcc8e5cf5b9ef7bcea21f"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/robfig/cron",
|
"ImportPath": "github.com/robfig/cron",
|
||||||
"Comment": "v1-16-g0f39cf7",
|
"Comment": "v1-16-g0f39cf7",
|
||||||
|
29
Godeps/LICENSES
generated
29
Godeps/LICENSES
generated
@ -57322,6 +57322,35 @@ specific language governing permissions and limitations under the License.
|
|||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
= vendor/github.com/renstrom/dedent licensed under: =
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
= vendor/github.com/renstrom/dedent/LICENSE 285693e07a6e1fd790cb3f3b8b5127db -
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
= vendor/github.com/robfig/cron licensed under: =
|
= vendor/github.com/robfig/cron licensed under: =
|
||||||
|
|
||||||
|
11
vendor/github.com/renstrom/dedent/.travis.yml
generated
vendored
Normal file
11
vendor/github.com/renstrom/dedent/.travis.yml
generated
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
language: go
|
||||||
|
|
||||||
|
go:
|
||||||
|
- 1.0
|
||||||
|
- 1.1
|
||||||
|
- 1.2
|
||||||
|
- 1.3
|
||||||
|
- 1.4
|
||||||
|
- 1.5
|
||||||
|
|
||||||
|
sudo: false
|
21
vendor/github.com/renstrom/dedent/LICENSE
generated
vendored
Normal file
21
vendor/github.com/renstrom/dedent/LICENSE
generated
vendored
Normal file
@ -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.
|
50
vendor/github.com/renstrom/dedent/README.md
generated
vendored
Normal file
50
vendor/github.com/renstrom/dedent/README.md
generated
vendored
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Dedent
|
||||||
|
|
||||||
|
[](https://travis-ci.org/renstrom/dedent)
|
||||||
|
[](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
|
49
vendor/github.com/renstrom/dedent/dedent.go
generated
vendored
Normal file
49
vendor/github.com/renstrom/dedent/dedent.go
generated
vendored
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
package dedent
|
||||||
|
|
||||||
|
import (
|
||||||
|
"regexp"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
whitespaceOnly = regexp.MustCompile("(?m)^[ \t]+$")
|
||||||
|
leadingWhitespace = regexp.MustCompile("(?m)(^[ \t]*)(?:[^ \t\n])")
|
||||||
|
)
|
||||||
|
|
||||||
|
// Dedent removes any common leading whitespace from every line in text.
|
||||||
|
//
|
||||||
|
// 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(text string) string {
|
||||||
|
var margin string
|
||||||
|
|
||||||
|
text = whitespaceOnly.ReplaceAllString(text, "")
|
||||||
|
indents := leadingWhitespace.FindAllStringSubmatch(text, -1)
|
||||||
|
|
||||||
|
// Look for the longest leading string of spaces and tabs common to all
|
||||||
|
// lines.
|
||||||
|
for i, indent := range indents {
|
||||||
|
if i == 0 {
|
||||||
|
margin = indent[1]
|
||||||
|
} else if strings.HasPrefix(indent[1], margin) {
|
||||||
|
// Current line more deeply indented than previous winner:
|
||||||
|
// no change (previous winner is still on top).
|
||||||
|
continue
|
||||||
|
} else if strings.HasPrefix(margin, indent[1]) {
|
||||||
|
// Current line consistent with and no deeper than previous winner:
|
||||||
|
// it's the new winner.
|
||||||
|
margin = indent[1]
|
||||||
|
} else {
|
||||||
|
// Current line and previous winner have no common whitespace:
|
||||||
|
// there is no margin.
|
||||||
|
margin = ""
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if margin != "" {
|
||||||
|
text = regexp.MustCompile("(?m)^"+margin).ReplaceAllString(text, "")
|
||||||
|
}
|
||||||
|
return text
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user