Commit Graph

37 Commits

Author SHA1 Message Date
1bf8fd416a Progress towards port to new spec (still not compiling) 2023-07-15 12:05:24 -04:00
64a8269b9d Partial port to new spec revision (won't compile yet); 2023-07-15 11:36:21 -04:00
d368bc5764 Ensure directories are accessible 2023-07-11 01:11:16 -04:00
377b4bbb05 Fix several logic issues causing failure during archive extraction 2023-07-11 00:57:22 -04:00
b070a129f8 Ensure parent directory exists before attempting to extract files 2023-07-10 09:47:36 -04:00
17c25c54bc Fix bug caused by writing big endian bytes instead of little endian for
file sizes; Fix bug caused by writing ascii characters instead of
integers for enum tags;
2023-07-10 01:02:04 -04:00
f1ca04d706 Flesh out extract method for Stream 2023-07-08 00:39:52 -04:00
Nathan Fisher
70e7846d3a Export stream::Message enum 2023-07-07 22:51:20 -04:00
Nathan Fisher
ce7fe5f019 Add "magic" to file start 2023-07-07 19:20:21 -04:00
Nathan Fisher
f2fff3ce76 Send Message::Eof after writing archive tail 2023-07-06 22:21:59 -04:00
Nathan Fisher
04d2fb2bf4 Use Vec<String> for files list rather than Vec<&str> to simplify code 2023-07-06 18:46:11 -04:00
Nathan Fisher
d303eb0390 Impl FromStr for Algorithm enum 2023-07-06 18:31:49 -04:00
05bec9ae2f Basic implementation of parallel extract; Todo: Message passing 2023-07-05 23:50:28 -04:00
02b9e4d1db Add Sender to parallel methods for user feedback 2023-07-05 23:21:30 -04:00
9ed4d503d1 Fix parallel archive creation, add archive streaming functions 2023-07-05 17:28:29 -04:00
797aa16a0d Add par_create_archive function 2023-07-05 14:27:40 -04:00
8a3bd19185 Add create_archive function 2023-07-05 13:35:37 -04:00
e5cbf16064 Finish Node::extract method 2023-07-05 13:07:46 -04:00
5fd1d09e77 Some work on extract for Node, requiring some plumbing which is in
`nix` module
2023-07-05 10:01:40 -04:00
Nathan Fisher
283228ff46 Spell check format spec 2023-07-05 00:37:17 -04:00
Nathan Fisher
2db3303f90 Use bold in table headings 2023-07-05 00:35:48 -04:00
Nathan Fisher
616b16f7db Add Eof file type, indicating end of archive. Publish first draft of the
specification.
2023-07-05 00:25:31 -04:00
31e39f39f5 Add space in between description and contents heading in README 2023-07-04 21:08:30 -04:00
0415cc20fe Change crate name to 'haggis' and add a README 2023-07-04 21:04:15 -04:00
13c82f79da Add doc comments for many public facing types 2023-07-04 20:13:38 -04:00
7346b40df8 Add BSD license 2023-07-04 01:30:11 -04:00
8f8e54220c Implement iterator for a stream of nodes 2023-07-04 01:19:07 -04:00
82ede31688 Refactor into separate modules 2023-07-04 00:51:47 -04:00
Nathan Fisher
162e027365 Finish from_path for Node 2023-07-03 23:37:57 -04:00
Nathan Fisher
2c8d05b9f8 Add Kind enum and method to get it's value from a u32 2023-07-03 19:04:55 -04:00
Nathan Fisher
d69198d7f8 Fix some logic errors, use some of the read/write methods previously set
up
2023-07-03 18:54:44 -04:00
458e572bb0 Begin adding from_path method for Node. Need to work out detection
of whether the file is a block/char/pipe special file and if so get
major and minor numbers.
2023-07-03 10:43:51 -04:00
f93374c70a Finish refactor from previous commit, unifying Header and Node
structures
2023-07-03 00:03:32 -04:00
Nathan Fisher
bdbcd41617 Setup to replace separate header/node idiom with unified Node. Enum
`Filetype` with now have `Normal(File)` (todo) which will include the
size, checksum and data, removing the `size` field from `Header`. The
`Header` struct will become the new `Node`.
2023-07-02 22:52:26 -04:00
Nathan Fisher
85e55dc456 Add Node structure 2023-07-02 01:32:34 -04:00
Nathan Fisher
8386ca76d3 Renamed to tar-ng 2023-07-02 00:53:21 -04:00
Nathan Fisher
0ddfb168f5 Initial commit 2023-07-02 00:44:39 -04:00