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 |