59dedb67c5
WIP
2015-09-24 11:17:57 -04:00
8a361ef0d8
tar/storage: Sprintf is unnecessary
...
fmt.Sprintf() vs string() for this []byte conversion is too much and
does not provide any further safety.
https://gist.github.com/vbatts/ab17181086aed558dd3a
2015-09-24 09:51:58 -04:00
cde639172f
tar/asm: work with non-utf8 entry names
2015-09-23 15:27:33 -04:00
032efafc29
tar/storage: work with raw (invalid utf8) names
...
When the entry name is not UTF-8, for example ISO-8859-1, then store the
raw bytes.
To accommodate this, we will have getters and setters for the entry's
name now. Since this most heavily affects the json marshalling, we'll
double check the sanity of the name before storing it in the JSONPacker.
2015-09-23 15:27:33 -04:00
39d06b9dc4
tar/common: get index of first invalid utf-8 char
2015-09-23 15:27:15 -04:00
2865353200
common: add a UTF-8 check helper
2015-09-23 15:27:13 -04:00
c76e42010e
tar/asm: additional GNU LongLink testcase
...
Adding a minimal test case for GNU @LongLink.
Tested that it fails on v0.9.5, but now passes on v0.9.6 and master.
2015-08-14 07:55:18 -04:00
8f81a50860
Merge pull request #10 from LK4D4/fix_pipe_close
...
asm: Remove unreachable code
2015-08-13 15:36:42 -04:00
e72b4959f9
Merge pull request #9 from LK4D4/fix_json_tags
...
storage: Fix syntax of json tags
2015-08-13 15:35:20 -04:00
Alexander Morozov
45399711c2
tar/storage: Replace TeeReader with MultiWriter
...
It uses slightly less memory and more understandable.
Benchmar results:
benchmark old ns/op new ns/op delta
BenchmarkPutter-4 57272 52375 -8.55%
benchmark old allocs new allocs delta
BenchmarkPutter-4 21 19 -9.52%
benchmark old bytes new bytes delta
BenchmarkPutter-4 19416 13336 -31.31%
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-08-13 11:43:31 -07:00
Alexander Morozov
ea73dc6f6f
tar/storage: Benchmark for bufferFileGetPutter.Put
...
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-08-13 11:42:14 -07:00
Alexander Morozov
93c0a320a8
asm: Remove unreachable code
...
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-08-12 22:45:39 -07:00
Alexander Morozov
b1783bc86d
storage: Fix syntax of json tags
...
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-08-12 22:41:28 -07:00
Alexander Morozov
e6df23162e
Remove redundant TeeReader
...
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-08-12 16:46:04 -07:00
df8572a1eb
tar/asm: check length before adding an entry
2015-08-11 15:57:20 -04:00
51b0481d4a
tar/asm: adding a failing test due to GNU LongLink
2015-08-11 15:57:20 -04:00
Jonathan Boulle
caf6a872c9
tar/storage: switch to map[string]struct{} for set
...
Using an empty struct is more idiomatic/efficient for representing a
set-like container.
2015-07-22 15:32:49 -04:00
Jonathan Boulle
002d19f0b0
*: clean up assorted spelling/grammar issues
...
Various minor fixes noticed on walking through
2015-07-22 15:32:49 -04:00
e0e9886972
tar/asm: return instead of break
...
5ddec2ae4a (commitcomment-12290378)
Reported-by: Tibor Vass <tibor@docker.com>
2015-07-22 11:32:18 -04:00
c2c2dde4cb
tar/storage: use filepath
instead of path
2015-07-22 10:27:53 -04:00
6d59e7bc76
tar/asm: clean up return on errors
...
This closure on error message needs returns so that the error message is
bubbled up to the reader.
2015-07-21 12:10:09 -04:00
c74af0bae7
tar/asm: test was flipped
2015-07-20 17:26:16 -04:00
04172717de
tar/asm: test for failure when mangling
2015-07-20 16:46:22 -04:00
e33913bf75
tar/asm: don't defer file closing
...
this `for {}` can read many files. defering the file handle close can
cause an EMFILE (too many open files).
2015-07-15 13:43:48 -04:00
86ada47639
tar/asm: handle nil tar Header
...
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2015-06-23 12:23:36 -04:00
ae13eaae94
tar/asm: remove uneeded goroutine
...
Reported-by: Derek McGowan <derek@mcgstyle.net>
2015-06-21 14:14:37 -04:00
46840c585a
*: golint and docs
2015-03-09 14:11:11 -04:00
f7b9a6caee
tar/asm: comments
2015-03-09 13:56:45 -04:00
4ab9185a57
tar/asm: package docs
2015-03-09 13:54:06 -04:00
d8ebf3c0a7
tar: mv the Getter to tar/storage
2015-03-09 13:20:26 -04:00
e045daf0b0
tar/storage: package docs
2015-03-09 13:13:04 -04:00
ecf0ed43a1
tar/asm: fix a goroutine deadlock
2015-03-06 16:30:48 -05:00
ab2fc5ec40
tar/asm: now testing assemble and disassemble
...
passing a tar archive through disassembly, then reassembling a tar
stream from it's metadata. Checking size and sha1 of the whole stream.
2015-03-05 14:09:17 -05:00
feaa049730
tar/asm: testing the disassembler
...
adding an archive to pass through and check that it is precisely the
same archive on the handed through io.Reader.
2015-03-05 11:21:01 -05:00
686addad77
tar/asm: comment on error
2015-03-03 14:27:37 -05:00
d55695834a
tar/storage: deciding on crc64 for integrity hash
2015-03-03 14:25:09 -05:00
4f1bde4d13
tar/asm: FileType entry with crc64 checksum
2015-03-03 14:23:04 -05:00
962589aca7
tar/asm: first pass at a disassembler
2015-03-02 16:49:53 -05:00
4e27d04b0b
tar/asm: DiscardFilePutter and stub disassemble
...
Have a bit-bucket FilePutter, for when it does not matter.
Beginning thoughts on disassembly, but it has things that need thought.
Mostly comments in the function for now.
2015-03-02 15:25:03 -05:00
ccf6fa61a6
tar/asm: tests and fix
2015-02-28 12:47:55 -05:00
0c9efa4324
tar/asm: finish the buffer FileGetPutter
2015-02-27 17:36:24 -05:00
86bf4b98ea
tar/asm: more interface for (dis)assembly
2015-02-27 16:54:41 -05:00
cfd32ecbc4
tar/storage: do not accept duplicate paths
2015-02-27 16:54:14 -05:00
891685f740
tar/asm: another thought on clobbered files
2015-02-25 16:53:31 -05:00
6814b938af
tar/asm: adding thoughts on concerns
2015-02-25 16:26:47 -05:00
081c5b9feb
tar/asm: clarify acronym
2015-02-25 14:40:49 -05:00
e1206b43a6
tar/asm: add FileGetter and concerns in README
2015-02-25 12:56:40 -05:00
7ccbb9d40c
tar/asm: initial assmebly of tar stream
2015-02-24 17:07:00 -05:00
34a67dfed5
tar/storage: remove cruft Reader
2015-02-24 16:10:49 -05:00
2d70b98f6e
tar/storage: show gzip usage in a test
2015-02-24 15:57:14 -05:00