github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/utils/escape/escape.go (about)

     1  package escape
     2  
     3  import "strings"
     4  
     5  // CommandLine takes in command line arguments as a slice and escapes the parameters
     6  func CommandLine(s []string) {
     7  	for i := range s {
     8  		s[i] = strings.Replace(s[i], `\`, `\\`, -1)
     9  		s[i] = strings.Replace(s[i], `$`, `\$`, -1)
    10  		s[i] = strings.Replace(s[i], `@`, `\@`, -1)
    11  		s[i] = strings.Replace(s[i], `|`, `\|`, -1)
    12  		s[i] = strings.Replace(s[i], `?`, `\?`, -1)
    13  		s[i] = strings.Replace(s[i], `*`, `\*`, -1)
    14  		s[i] = strings.Replace(s[i], `'`, `\'`, -1)
    15  		s[i] = strings.Replace(s[i], `"`, `\"`, -1)
    16  		s[i] = strings.Replace(s[i], `(`, `\(`, -1)
    17  		s[i] = strings.Replace(s[i], `)`, `\)`, -1)
    18  		s[i] = strings.Replace(s[i], `<`, `\<`, -1)
    19  		s[i] = strings.Replace(s[i], `>`, `\>`, -1)
    20  		s[i] = strings.Replace(s[i], `#`, `\#`, -1)
    21  		s[i] = strings.Replace(s[i], ` `, `\ `, -1)
    22  		s[i] = strings.Replace(s[i], "\t", `\t`, -1)
    23  		s[i] = strings.Replace(s[i], "\r", `\r`, -1)
    24  		s[i] = strings.Replace(s[i], "\n", `\n`, -1)
    25  	}
    26  }
    27  
    28  // Table takes in terminal-rendered tables cells and escapes the contents
    29  func Table(s []string) {
    30  	for i := range s {
    31  		s[i] = strings.Replace(s[i], `\`, `\\`, -1)
    32  		s[i] = strings.Replace(s[i], `$`, `\$`, -1)
    33  		s[i] = strings.Replace(s[i], `@`, `\@`, -1)
    34  		s[i] = strings.Replace(s[i], `"`, `\"`, -1)
    35  		s[i] = strings.Replace(s[i], `<`, `\<`, -1)
    36  		s[i] = strings.Replace(s[i], `>`, `\>`, -1)
    37  		s[i] = strings.Replace(s[i], "\t", `\t`, -1)
    38  		s[i] = strings.Replace(s[i], "\r", `\r`, -1)
    39  		s[i] = strings.Replace(s[i], "\n", `\n`, -1)
    40  	}
    41  }