@@ -8,9 +8,15 @@ import (
88 "strings"
99 "time"
1010
11+ "github.com/fatih/color"
1112 "github.com/vukan322/nuke-node_modules/internal/util"
1213)
1314
15+ var (
16+ yellow = color .New (color .FgYellow ).SprintFunc ()
17+ red = color .New (color .FgRed ).SprintFunc ()
18+ )
19+
1420type Scanner struct {
1521 rootPath string
1622 days int
@@ -45,7 +51,7 @@ func (s *Scanner) Scan() (*ScanResult, error) {
4551 err = filepath .WalkDir (s .rootPath , func (path string , d fs.DirEntry , err error ) error {
4652 if err != nil {
4753 if s .verbose {
48- fmt .Fprintf (os .Stderr , "Warning: cannot access %s: %v\n " , path , err )
54+ fmt .Fprintf (os .Stderr , "%s %s: %v\n " , yellow ( "Warning:" ) , path , err )
4955 }
5056 return nil
5157 }
@@ -56,7 +62,7 @@ func (s *Scanner) Scan() (*ScanResult, error) {
5662
5763 if d .Type ()& os .ModeSymlink != 0 {
5864 if s .verbose {
59- fmt .Fprintf (os .Stderr , "Skipping symlink: %s\n " , path )
65+ fmt .Fprintf (os .Stderr , "%s %s\n " , yellow ( "Skipping symlink:" ) , path )
6066 }
6167 return fs .SkipDir
6268 }
@@ -71,21 +77,21 @@ func (s *Scanner) Scan() (*ScanResult, error) {
7177 info , err := d .Info ()
7278 if err != nil {
7379 if s .verbose {
74- fmt .Fprintf (os .Stderr , "Warning: cannot get info for %s: %v\n " , path , err )
80+ fmt .Fprintf (os .Stderr , "%s cannot get info for %s: %v\n " , yellow ( "Warning:" ) , path , err )
7581 }
7682 return nil
7783 }
7884
7985 if getDevice (info ) != s .rootDev {
8086 if s .verbose {
81- fmt .Fprintf (os .Stderr , "Skipping different filesystem: %s \n " , path )
87+ fmt .Fprintf (os .Stderr , "%s %s \n " , yellow ( " Skipping different filesystem:" ) , path )
8288 }
8389 return fs .SkipDir
8490 }
8591
8692 if d .Name () == "node_modules" {
8793 if info .ModTime ().Before (s .cutoffTime ) {
88- size := calculateSize (path )
94+ size := util . CalculateSize (path )
8995 folder := FolderInfo {
9096 Path : path ,
9197 Size : size ,
@@ -133,7 +139,7 @@ func (s *Scanner) Delete(result *ScanResult) (*ScanResult, error) {
133139 if err != nil {
134140 failures = append (failures , fmt .Sprintf ("%s: %v" , folder .Path , err ))
135141 if s .verbose {
136- fmt .Fprintf (os .Stderr , "Failed to delete %s: %v\n " , folder .Path , err )
142+ fmt .Fprintf (os .Stderr , "%s %s: %v\n " , red ( "Failed to delete" ) , folder .Path , err )
137143 }
138144 continue
139145 }
@@ -153,20 +159,3 @@ func (s *Scanner) Delete(result *ScanResult) (*ScanResult, error) {
153159
154160 return deleted , nil
155161}
156-
157- func calculateSize (path string ) int64 {
158- var size int64
159- _ = filepath .WalkDir (path , func (_ string , d fs.DirEntry , err error ) error {
160- if err != nil {
161- return nil
162- }
163- if ! d .IsDir () {
164- info , err := d .Info ()
165- if err == nil {
166- size += info .Size ()
167- }
168- }
169- return nil
170- })
171- return size
172- }
0 commit comments