diff --git a/Cssfile.go b/Cssfile.go index 6033fbf..ba35413 100644 --- a/Cssfile.go +++ b/Cssfile.go @@ -3,18 +3,24 @@ package cssminify import ( "os" "path/filepath" - "regexp" + "strings" ) -func Files() []string { +// returns all .css files in the passed directory +func CssFiles(dir string) []string { files := make([]string, 0) - filepath.Walk(".", + filepath.Walk(dir, func(root string, info os.FileInfo, err error) error { - matched, _ := regexp.MatchString(".css$", root) - if matched { + if strings.HasSuffix(root, ".css") && !strings.HasSuffix(root, "min.css") { files = append(files, root) } return err }) return files } + +// returns all CSS files in the current directory +// might in the future also return HTML files to allow inline style minification +func Files() []string { + return CssFiles(".") +} diff --git a/Minify.go b/Minify.go index 06d768d..ee43059 100644 --- a/Minify.go +++ b/Minify.go @@ -6,6 +6,8 @@ import ( "strings" ) +var spaceRegexp = regexp.MustCompile(`\s{2,}`) + func Minify(blocks []Block, file string) { for _, block := range blocks { showSelectors(string(block.selector)) @@ -45,10 +47,5 @@ func minifyProp(property string) string { } func cleanSpaces(str string) string { - str = strings.TrimSpace(str) - re := regexp.MustCompile(`\s\s`) - for str = re.ReplaceAllString(str, " "); re.Find([]byte(str)) != nil; { - str = re.ReplaceAllString(str, " ") - } - return str + return spaceRegexp.ReplaceAllString(strings.TrimSpace(str), " ") }