@@ -19,6 +19,7 @@ import (
19
19
"errors"
20
20
"fmt"
21
21
"io"
22
+ "io/fs"
22
23
"log"
23
24
"net/http"
24
25
"os"
@@ -365,17 +366,22 @@ func Tar(src string, targetFile string) error {
365
366
tw := tar .NewWriter (zr )
366
367
367
368
// walk through every file in the folder
368
- err = filepath .Walk (src , func (file string , fi os. FileInfo , errFn error ) error {
369
+ err = filepath .WalkDir (src , func (file string , d fs. DirEntry , errFn error ) error {
369
370
if errFn != nil {
370
371
return fmt .Errorf ("error traversing the file system: %w" , errFn )
371
372
}
372
373
373
374
// if a symlink, skip file
374
- if fi . Mode () .Type () == os .ModeSymlink {
375
+ if d .Type () == os .ModeSymlink {
375
376
fmt .Printf (">> skipping symlink: %s\n " , file )
376
377
return nil
377
378
}
378
379
380
+ fi , err := d .Info ()
381
+ if err != nil {
382
+ return fmt .Errorf ("error getting direntry info: %w" , err )
383
+ }
384
+
379
385
// generate tar header
380
386
header , err := tar .FileInfoHeader (fi , file )
381
387
if err != nil {
@@ -640,23 +646,28 @@ func FindFiles(globs ...string) ([]string, error) {
640
646
// FindFilesRecursive recursively traverses from the CWD and invokes the given
641
647
// match function on each regular file to determine if the given path should be
642
648
// returned as a match. It ignores files in .git directories.
643
- func FindFilesRecursive (match func (path string , info os .FileInfo ) bool ) ([]string , error ) {
649
+ func FindFilesRecursive (match func (path string , d fs .FileInfo ) bool ) ([]string , error ) {
644
650
var matches []string
645
- err := filepath .Walk ("." , func (path string , info os. FileInfo , err error ) error {
651
+ err := filepath .WalkDir ("." , func (path string , d fs. DirEntry , err error ) error {
646
652
if err != nil {
647
653
return err
648
654
}
649
655
650
656
// Don't look for files in git directories
651
- if info . Mode () .IsDir () && filepath .Base (path ) == ".git" {
657
+ if d .IsDir () && filepath .Base (path ) == ".git" {
652
658
return filepath .SkipDir
653
659
}
654
660
655
- if ! info . Mode ().IsRegular () {
661
+ if ! d . Type ().IsRegular () {
656
662
// continue
657
663
return nil
658
664
}
659
665
666
+ info , err := d .Info ()
667
+ if err != nil {
668
+ return err
669
+ }
670
+
660
671
if match (filepath .ToSlash (path ), info ) {
661
672
matches = append (matches , path )
662
673
}
@@ -786,15 +797,15 @@ func IsUpToDate(dst string, sources ...string) bool {
786
797
787
798
var files []string
788
799
for _ , s := range sources {
789
- err := filepath .Walk (s , func (path string , info os. FileInfo , err error ) error {
800
+ err := filepath .WalkDir (s , func (path string , d fs. DirEntry , err error ) error {
790
801
if err != nil {
791
802
if os .IsNotExist (err ) {
792
803
return nil
793
804
}
794
805
return err
795
806
}
796
807
797
- if info . Mode ().IsRegular () {
808
+ if d . Type ().IsRegular () {
798
809
files = append (files , path )
799
810
}
800
811
0 commit comments