-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
- Loading branch information
1 parent
239d61f
commit 7acea2a
Showing
384 changed files
with
88,188 additions
and
4,865 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
// Copyright 2013 The Go Authors. All rights reserved. | ||
// Use of this source code is governed by a BSD-style | ||
// license that can be found in the LICENSE file. | ||
|
||
package tar_test | ||
|
||
import ( | ||
"archive/tar" | ||
"bytes" | ||
"fmt" | ||
"io" | ||
"log" | ||
"os" | ||
) | ||
|
||
func Example() { | ||
// Create a buffer to write our archive to. | ||
buf := new(bytes.Buffer) | ||
|
||
// Create a new tar archive. | ||
tw := tar.NewWriter(buf) | ||
|
||
// Add some files to the archive. | ||
var files = []struct { | ||
Name, Body string | ||
}{ | ||
{"readme.txt", "This archive contains some text files."}, | ||
{"gopher.txt", "Gopher names:\nGeorge\nGeoffrey\nGonzo"}, | ||
{"todo.txt", "Get animal handling license."}, | ||
} | ||
for _, file := range files { | ||
hdr := &tar.Header{ | ||
Name: file.Name, | ||
Mode: 0600, | ||
Size: int64(len(file.Body)), | ||
} | ||
if err := tw.WriteHeader(hdr); err != nil { | ||
log.Fatalln(err) | ||
} | ||
if _, err := tw.Write([]byte(file.Body)); err != nil { | ||
log.Fatalln(err) | ||
} | ||
} | ||
// Make sure to check the error on Close. | ||
if err := tw.Close(); err != nil { | ||
log.Fatalln(err) | ||
} | ||
|
||
// Open the tar archive for reading. | ||
r := bytes.NewReader(buf.Bytes()) | ||
tr := tar.NewReader(r) | ||
|
||
// Iterate through the files in the archive. | ||
for { | ||
hdr, err := tr.Next() | ||
if err == io.EOF { | ||
// end of tar archive | ||
break | ||
} | ||
if err != nil { | ||
log.Fatalln(err) | ||
} | ||
fmt.Printf("Contents of %s:\n", hdr.Name) | ||
if _, err := io.Copy(os.Stdout, tr); err != nil { | ||
log.Fatalln(err) | ||
} | ||
fmt.Println() | ||
} | ||
|
||
// Output: | ||
// Contents of readme.txt: | ||
// This archive contains some text files. | ||
// Contents of gopher.txt: | ||
// Gopher names: | ||
// George | ||
// Geoffrey | ||
// Gonzo | ||
// Contents of todo.txt: | ||
// Get animal handling license. | ||
} |
Oops, something went wrong.