|
1 | 1 | package osdctl |
2 | 2 |
|
3 | 3 | import ( |
4 | | - "archive/tar" |
5 | | - "compress/gzip" |
6 | 4 | "fmt" |
7 | | - "io" |
8 | 5 | "os" |
9 | 6 | "path/filepath" |
10 | 7 | "runtime" |
@@ -151,75 +148,6 @@ func (t *Tool) Remove(rootDir, latestDir string) error { |
151 | 148 | return nil |
152 | 149 | } |
153 | 150 |
|
154 | | -func unArchive(source string, destination string) error { |
155 | | - src, err := os.Open(source) |
156 | | - if err != nil { |
157 | | - return fmt.Errorf("failed to open tarball '%s': %v", source, err) |
158 | | - } |
159 | | - defer func() { |
160 | | - err = src.Close() |
161 | | - if err != nil { |
162 | | - fmt.Printf("WARNING: failed to close '%s': %v\n", src.Name(), err) |
163 | | - } |
164 | | - }() |
165 | | - uncompressed, err := gzip.NewReader(src) |
166 | | - if err != nil { |
167 | | - return fmt.Errorf("failed to read the gzip file '%s': %v", source, err) |
168 | | - } |
169 | | - defer func() { |
170 | | - err = uncompressed.Close() |
171 | | - if err != nil { |
172 | | - fmt.Printf("WARNING: failed to close gzip file '%s': %v", source, err) |
173 | | - } |
174 | | - }() |
175 | | - arc := tar.NewReader(uncompressed) |
176 | | - var f *tar.Header |
177 | | - for { |
178 | | - f, err = arc.Next() |
179 | | - if err == io.EOF { |
180 | | - break |
181 | | - } |
182 | | - if err != nil { |
183 | | - return fmt.Errorf("failed to read from archive '%s': %v", source, err) |
184 | | - } |
185 | | - if f.FileInfo().IsDir() { |
186 | | - err = os.MkdirAll(filepath.Join(destination, f.Name), 0755) |
187 | | - if err != nil { |
188 | | - return fmt.Errorf("failed to create a directory : %v", err) |
189 | | - } |
190 | | - } else { |
191 | | - err = extractFile(destination, f, arc) |
192 | | - if err != nil { |
193 | | - return fmt.Errorf("failed to extract files: %v", err) |
194 | | - } |
195 | | - } |
196 | | - } |
197 | | - return nil |
198 | | -} |
199 | | - |
200 | 151 | func (t *Tool) Configure() error { |
201 | 152 | return nil |
202 | 153 | } |
203 | | - |
204 | | -func extractFile(destination string, f *tar.Header, arc io.Reader) error { |
205 | | - dst, err := os.Create(filepath.Join(destination, f.Name)) |
206 | | - if err != nil { |
207 | | - return fmt.Errorf("failed to create file: %v", err) |
208 | | - } |
209 | | - defer func() { |
210 | | - err = dst.Close() |
211 | | - if err != nil { |
212 | | - fmt.Printf("warning: failed to close '%s': %v\n", dst.Name(), err) |
213 | | - } |
214 | | - }() |
215 | | - |
216 | | - err = dst.Chmod(os.FileMode(0755)) |
217 | | - if err != nil { |
218 | | - return fmt.Errorf("failed to set permission on '%s': %v", dst.Name(), err) |
219 | | - } |
220 | | - _, err = dst.ReadFrom(arc) |
221 | | - if err != nil { |
222 | | - return fmt.Errorf("failed to read from archive %v", err) |
223 | | - } |
224 | | - return nil |
225 | | -} |
0 commit comments