github.com/TrueBlocks/trueblocks-core/src/apps/chifra@v0.0.0-20241022031540-b362680128f7/pkg/file/filename.go (about)

     1  package file
     2  
     3  import "strings"
     4  
     5  // ValidFilename returns a valid filename from the input string
     6  func ValidFilename(in string, noSpaces bool) string {
     7  	invalidChars := []string{
     8  		"\n", "\r", "\t", "/", "\\", ":", "*", "?", "'", "\"",
     9  		"<", ">", "|", "(", ")", "[", "]", "{", "}",
    10  	}
    11  	if noSpaces {
    12  		invalidChars = append(invalidChars, " ")
    13  	}
    14  
    15  	for _, char := range invalidChars {
    16  		in = strings.ReplaceAll(in, char, "_")
    17  	}
    18  	in = strings.TrimSpace(in)
    19  	in = strings.Trim(in, "_")
    20  	in = strings.ReplaceAll(in, "__", "_")
    21  	return in
    22  }