Skip to content

Commit

Permalink
cmd: revert to use io/fs and demand Go1.16, see #388
Browse files Browse the repository at this point in the history
  • Loading branch information
tdewolff committed Mar 14, 2021
1 parent 0a58518 commit a655f80
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 132 deletions.
37 changes: 25 additions & 12 deletions cmd/minify/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"bufio"
"fmt"
"io"
"io/fs"
"io/ioutil"
"log"
"net/url"
Expand Down Expand Up @@ -473,7 +474,7 @@ func sanitizePath(p string) string {
}
if isDir {
p += "/"
} else if info, err := os.Lstat(p); err == nil && info.Mode().IsDir() && info.Mode()&os.ModeSymlink == 0 {
} else if info, err := os.Lstat(p); err == nil && info.Mode().IsDir() && info.Mode()&fs.ModeSymlink == 0 {
p += "/"
}
if isCur {
Expand All @@ -499,11 +500,23 @@ func fileMatches(filename string) bool {
return true
}

type DirEntry struct {
fs.FileInfo
}

func (d DirEntry) Type() fs.FileMode {
return d.Mode().Type()
}

func (d DirEntry) Info() (fs.FileInfo, error) {
return d.FileInfo, nil
}

func createTasks(inputs []string, output string) ([]Task, []string, error) {
tasks := []Task{}
roots := []string{}
for _, input := range inputs {
var info os.FileInfo
var info fs.FileInfo
var err error
if !preserveSymlinks {
info, err = os.Stat(input)
Expand All @@ -514,7 +527,7 @@ func createTasks(inputs []string, output string) ([]Task, []string, error) {
return nil, nil, err
}

if info.Mode()&os.ModeSymlink != 0 {
if info.Mode()&fs.ModeSymlink != 0 {
if !sync {
Warning.Println("--sync not specified, omitting symbolic link", input)
continue
Expand All @@ -540,33 +553,33 @@ func createTasks(inputs []string, output string) ([]Task, []string, error) {
}
roots = append(roots, input)

var walkFn func(string, os.DirEntry, error) error
walkFn = func(path string, d os.DirEntry, err error) error {
var walkFn func(string, fs.DirEntry, error) error
walkFn = func(path string, d fs.DirEntry, err error) error {
if err != nil {
return err
} else if d.Name() == "." || d.Name() == ".." {
return nil
} else if len(d.Name()) == 0 || !hidden && d.Name()[0] == '.' {
if d.IsDir() {
return filepath.SkipDir
return fs.SkipDir
}
return nil
}
path = sanitizePath(path)

if !preserveSymlinks && d.Type()&os.ModeSymlink != 0 {
if !preserveSymlinks && d.Type()&fs.ModeSymlink != 0 {
// follow and dereference symlinks
info, err := os.Stat(path)
if err != nil {
return err
}
if info.IsDir() {
return WalkDir(input, path, walkFn)
return fs.WalkDir(os.DirFS(input), path, walkFn)
}
d = &statDirEntry{info}
d = DirEntry{info}
}

if preserveSymlinks && d.Type()&os.ModeSymlink != 0 {
if preserveSymlinks && d.Type()&fs.ModeSymlink != 0 {
// copy symlinks as is
if !sync {
Warning.Println("--sync not specified, omitting symbolic link", path)
Expand All @@ -589,7 +602,7 @@ func createTasks(inputs []string, output string) ([]Task, []string, error) {
}
return nil
}
if err := WalkDir(".", input, walkFn); err != nil {
if err := fs.WalkDir(os.DirFS("."), input, walkFn); err != nil {
return nil, nil, err
}
} else {
Expand Down Expand Up @@ -656,7 +669,7 @@ func minify(t Task) bool {
if t.sync {
if t.srcs[0] == t.dst {
return true
} else if info, err := os.Lstat(t.srcs[0]); preserveSymlinks && err == nil && info.Mode()&os.ModeSymlink != 0 {
} else if info, err := os.Lstat(t.srcs[0]); preserveSymlinks && err == nil && info.Mode()&fs.ModeSymlink != 0 {
src, err := os.Readlink(t.srcs[0])
if err != nil {
Error.Println(err)
Expand Down
119 changes: 0 additions & 119 deletions cmd/minify/walkdir.go

This file was deleted.

2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/tdewolff/minify/v2

go 1.13
go 1.16

require (
github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927 // indirect
Expand Down

0 comments on commit a655f80

Please sign in to comment.