Creates a Gzipped tar archive of the directory provided as parameter.
(debugDir string)
| 119 | |
| 120 | // Creates a Gzipped tar archive of the directory provided as parameter. |
| 121 | func createGzipArchive(debugDir string) (string, error) { |
| 122 | source, err := createArchive(debugDir) |
| 123 | if err != nil { |
| 124 | return "", err |
| 125 | } |
| 126 | |
| 127 | reader, err := os.Open(source) |
| 128 | if err != nil { |
| 129 | return "", err |
| 130 | } |
| 131 | |
| 132 | filename := filepath.Base(source) |
| 133 | target := fmt.Sprintf("%s.gz", source) |
| 134 | writer, err := os.Create(target) |
| 135 | if err != nil { |
| 136 | return "", err |
| 137 | } |
| 138 | defer func() { |
| 139 | if err := writer.Close(); err != nil { |
| 140 | glog.Warningf("error closing writer: %v", err) |
| 141 | } |
| 142 | }() |
| 143 | |
| 144 | archiver := gzip.NewWriter(writer) |
| 145 | archiver.Name = filename |
| 146 | defer func() { |
| 147 | if err := archiver.Close(); err != nil { |
| 148 | glog.Warningf("error closing archiver: %v", err) |
| 149 | } |
| 150 | }() |
| 151 | |
| 152 | _, err = io.Copy(archiver, reader) |
| 153 | if err != nil { |
| 154 | return "", err |
| 155 | } |
| 156 | |
| 157 | if err = os.Remove(source); err != nil { |
| 158 | glog.Warningf("error while removing intermediate tar file: %s", err) |
| 159 | } |
| 160 | |
| 161 | return target, nil |
| 162 | } |
no test coverage detected