MCPcopy
hub / github.com/tdewolff/minify / createTasks

Function createTasks

cmd/minify/main.go:683–795  ·  view source on GitHub ↗
(fsys fs.FS, inputs []string, output string)

Source from the content-addressed store, hash-verified

681}
682
683func createTasks(fsys fs.FS, inputs []string, output string) ([]Task, []string, error) {
684 tasks := []Task{}
685 roots := []string{}
686 for _, input := range inputs {
687 root := filepath.Clean(filepath.Dir(input))
688 input = filepath.Clean(input)
689
690 var err error
691 var info os.FileInfo
692 if !preserveLinks {
693 // follow and dereference symlinks
694 info, err = fs.Stat(fsys, input)
695 } else {
696 info, err = os.Lstat(input)
697 }
698 if err != nil {
699 Error.Println(err)
700 continue
701 }
702
703 if preserveLinks && info.Mode()&os.ModeSymlink != 0 {
704 // copy symlink as is
705 if !sync {
706 return nil, nil, fmt.Errorf("--sync not specified, omitting symbolic link %v", input)
707 }
708 task, err := NewTask(root, input, output, true)
709 if err != nil {
710 return nil, nil, err
711 }
712 tasks = append(tasks, task)
713 } else if info.Mode().IsRegular() {
714 valid := fileFilter(input) // don't filter mimetype
715 if valid || sync {
716 if mimetype == "" && !sync {
717 ext := filepath.Ext(input)
718 if 0 < len(ext) {
719 ext = ext[1:]
720 }
721 if _, ok := extMap[ext]; !ok {
722 return nil, nil, fmt.Errorf("cannot infer mimetype from extension in %v, set --type explicitly", input)
723 }
724 }
725 task, err := NewTask(root, input, output, !valid)
726 if err != nil {
727 return nil, nil, err
728 }
729 tasks = append(tasks, task)
730 }
731 } else if info.Mode().IsDir() {
732 if !recursive {
733 Warning.Printf("--recursive not specified, omitting directory %v", input)
734 continue
735 }
736
737 var walkFn func(string, fs.DirEntry, error) error
738 walkFn = func(input string, d fs.DirEntry, err error) error {
739 if err != nil {
740 return err

Callers 2

TestCreateTasksFunction · 0.85
runFunction · 0.85

Calls 6

NewTaskFunction · 0.85
appendFunction · 0.85
fileFilterFunction · 0.85
lenFunction · 0.85
fileMatchesFunction · 0.85
StatMethod · 0.80

Tested by 1

TestCreateTasksFunction · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…