Skip to content

Latest commit

 

History

History
47 lines (33 loc) · 931 Bytes

README.md

File metadata and controls

47 lines (33 loc) · 931 Bytes

Sanity

Sanity is a fast and easily extensible file name (and in fact any other string) sanitizer.

Usage

Built-in rule set

Sanity provides a sensible default rule set for Windows and Linux file names that will be enough in most cases:

package main

import (
	"fmt"

	"github.com/dreamscached/sanity/filename"
)

func main() {
	// Prints 'con_.txt'
	fmt.Println(filename.Windows.Sanitize("con.txt"))

	// Prints 'foobar'
	fmt.Println(filename.Unix.Sanitize("foo\x00bar.txt"))
}

Creating custom rule sets

Sanity provides a clean and obvious way to create custom rule sets with Rule factory functions. For example, here's Linux default file name rule set.

package main

import (
	"github.com/dreamscached/sanity"
	"github.com/aquilax/truncate"
)

var Unix = sanity.New(
	sanity.Replace("/", " "),
	sanity.StripRune(0x0),
	sanity.Truncate(255, truncate.DEFAULT_OMISSION, truncate.PositionEnd),
)