-
-
Notifications
You must be signed in to change notification settings - Fork 62
/
extras.go
25 lines (22 loc) · 707 Bytes
/
extras.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package argparse
import "strings"
func getLastLine(input string) string {
slice := strings.Split(input, "\n")
return slice[len(slice)-1]
}
func addToLastLine(base string, add string, width int, padding int, canSplit bool) string {
// If last line has less than 10% space left, do not try to fill in by splitting else just try to split
hasTen := (width - len(getLastLine(base))) > width/10
if len(getLastLine(base)+" "+add) >= width {
if hasTen && canSplit {
adds := strings.Split(add, " ")
for _, v := range adds {
base = addToLastLine(base, v, width, padding, false)
}
return base
}
base = base + "\n" + strings.Repeat(" ", padding)
}
base = base + " " + add
return base
}