mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 13:50:01 +00:00 
			
		
		
		
	Add dedent pkg
This commit is contained in:
		
							
								
								
									
										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 | ||||
| } | ||||
		Reference in New Issue
	
	Block a user