Mercurial > mercurial > hgweb_golang.cgi
comparison src/ut/lu/lu.go @ 17:72ce457fb99d
ut: bug fix.
| author | pyon@macmini |
|---|---|
| date | Wed, 20 Jun 2018 06:01:58 +0900 |
| parents | 38b64afbaf79 |
| children | 45ca03520eea |
comparison
equal
deleted
inserted
replaced
| 16:38b64afbaf79 | 17:72ce457fb99d |
|---|---|
| 79 fmt.Printf( "%s:\t%5d\n", file, cnt ) | 79 fmt.Printf( "%s:\t%5d\n", file, cnt ) |
| 80 } | 80 } |
| 81 } | 81 } |
| 82 } | 82 } |
| 83 | 83 |
| 84 /* tar cvfz: done. */ | |
| 85 func Tgz( tgzfile string, files []string ) { | |
| 86 | |
| 87 tgz, err := os.Create( tgzfile ) | |
| 88 if err != nil { | |
| 89 log.Fatal( err ) | |
| 90 } | |
| 91 defer tgz.Close() | |
| 92 | |
| 93 gw := gzip.NewWriter( tgz ) | |
| 94 defer gw.Close() | |
| 95 tw := tar.NewWriter( gw ) | |
| 96 defer tw.Close() | |
| 97 | |
| 98 for _, file := range fullpath( files ) { | |
| 99 f, err := os.Open( file ) | |
| 100 if err != nil { | |
| 101 log.Fatal( err ) | |
| 102 } | |
| 103 | |
| 104 stat, _ := f.Stat() | |
| 105 header := new( tar.Header ) | |
| 106 header.Name = file | |
| 107 header.Size = stat.Size() | |
| 108 header.Mode = int64( stat.Mode() ) | |
| 109 header.ModTime = stat.ModTime() | |
| 110 | |
| 111 if err := tw.WriteHeader( header ); err != nil { | |
| 112 log.Fatal( err ) | |
| 113 } | |
| 114 if _, err := io.Copy( tw, f ); err != nil { | |
| 115 log.Fatal( err ) | |
| 116 } | |
| 117 f.Close() | |
| 118 } | |
| 119 } | |
| 120 | |
| 84 /* tar xvfz: done. */ | 121 /* tar xvfz: done. */ |
| 85 func UnTgz( files []string ) { | 122 func UnTgz( files []string ) { |
| 86 | 123 |
| 87 for _, file := range files { | 124 for _, file := range files { |
| 88 | 125 |
| 126 | 163 |
| 127 if err := zr.Close(); err != nil { | 164 if err := zr.Close(); err != nil { |
| 128 log.Fatal( err ) | 165 log.Fatal( err ) |
| 129 } | 166 } |
| 130 } | 167 } |
| 131 | 168 } |
| 169 | |
| 170 func fullpath( files []string ) []string { | |
| 171 var buf []string | |
| 172 for _, f := range files { | |
| 173 fi, _ := os.Stat( f ) | |
| 174 if fi.IsDir() { | |
| 175 filepath.Walk( f, func( path string, info os.FileInfo, err error ) error { | |
| 176 if !info.IsDir() { | |
| 177 buf = append( buf, path ) | |
| 178 } | |
| 179 return nil | |
| 180 } ) | |
| 181 } else { | |
| 182 buf = append( buf, f ) | |
| 183 } | |
| 184 } | |
| 185 return buf | |
| 132 } | 186 } |
| 133 | 187 |
| 134 /* tac: done. */ | 188 /* tac: done. */ |
| 135 func Reverse( files []string ) { | 189 func Reverse( files []string ) { |
| 136 var buf []string | 190 var buf []string |
