@@ -43,21 +43,36 @@ func main() {
4343 os .Exit (0 )
4444 }
4545
46- cache_dirs := []string {".nuxt" , "cache" , ".cache" , "@cache" , "temp" , ".temp" , "@temp" }
46+ cacheDirs := []string {".nuxt" , "cache" , ".cache" , "@cache" , "temp" , ".temp" , "@temp" }
4747
48- withDist (& cache_dirs )
48+ withDist (& cacheDirs )
4949
50- withNodeModules (& cache_dirs )
50+ withNodeModules (& cacheDirs )
5151
52- for _ , v := range cache_dirs {
53- if ! IsExist (v ) || ! IsDir (v ) {
54- continue
55- }
56- err := RemoveAll (v )
57- if err != nil {
58- color .Red ("remove fail: %v \n root: %v" , err , v )
59- } else {
60- color .Green ("remove success: %v" , v )
61- }
52+ cacheDirsLen := len (cacheDirs )
53+
54+ errChan := make (chan error )
55+ signalChan := make (chan struct {}, cacheDirsLen )
56+ resolve , reject , status := StatusPromise (signalChan , errChan )
57+
58+ for _ , v := range cacheDirs {
59+ go func (dir string ) {
60+ if ! IsExist (dir ) || ! IsDir (dir ) {
61+ resolve (NoopSignal )
62+ return
63+ }
64+ err := RemoveAll (dir )
65+ if err != nil {
66+ reject (err )
67+ color .Red ("remove fail: %v \n root: %v" , err , dir )
68+ } else {
69+ resolve (NoopSignal )
70+ color .Green ("remove success: %v" , dir )
71+ }
72+ }(v )
73+ }
74+
75+ for i := 0 ; i < cacheDirsLen ; i ++ {
76+ status ()
6277 }
6378}
0 commit comments