All checks were successful
		
		
	
	Test / Create distribution (push) Successful in 34s
				
			Test / Sandbox (push) Successful in 2m12s
				
			Test / Hakurei (push) Successful in 3m8s
				
			Test / Hpkg (push) Successful in 4m9s
				
			Test / Sandbox (race detector) (push) Successful in 4m31s
				
			Test / Hakurei (race detector) (push) Successful in 5m25s
				
			Test / Flake checks (push) Successful in 1m40s
				
			This is used in hst to format strings. Signed-off-by: Ophestra <cat@gensokyo.uk>
		
			
				
	
	
		
			30 lines
		
	
	
		
			846 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			846 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package check
 | 
						|
 | 
						|
import "strings"
 | 
						|
 | 
						|
const (
 | 
						|
	// SpecialOverlayEscape is the escape string for overlay mount options.
 | 
						|
	SpecialOverlayEscape = `\`
 | 
						|
	// SpecialOverlayOption is the separator string between overlay mount options.
 | 
						|
	SpecialOverlayOption = ","
 | 
						|
	// SpecialOverlayPath is the separator string between overlay paths.
 | 
						|
	SpecialOverlayPath = ":"
 | 
						|
)
 | 
						|
 | 
						|
// EscapeOverlayDataSegment escapes a string for formatting into the data argument of an overlay mount call.
 | 
						|
func EscapeOverlayDataSegment(s string) string {
 | 
						|
	if s == "" {
 | 
						|
		return ""
 | 
						|
	}
 | 
						|
 | 
						|
	if f := strings.SplitN(s, "\x00", 2); len(f) > 0 {
 | 
						|
		s = f[0]
 | 
						|
	}
 | 
						|
 | 
						|
	return strings.NewReplacer(
 | 
						|
		SpecialOverlayEscape, SpecialOverlayEscape+SpecialOverlayEscape,
 | 
						|
		SpecialOverlayOption, SpecialOverlayEscape+SpecialOverlayOption,
 | 
						|
		SpecialOverlayPath, SpecialOverlayEscape+SpecialOverlayPath,
 | 
						|
	).Replace(s)
 | 
						|
}
 |