2f4c0d3679
Split off code into internal helper function
...
Function gets absolute path to given filename.
2024-07-24 14:04:19 +09:00
9d105bc3a5
Minor tweak to includes in archiver
2024-07-24 14:03:03 +09:00
e9c327a62f
Add "--no-abs-symlink" to not store absolute paths
2024-07-24 13:32:39 +09:00
d939939723
Impl. archiving abs/rel-paths for symbolic links
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
TODO:
Choosing the ideal link based on if link points to an archived file.
Extracting (creating) symbolic links from archive.
2024-07-23 15:28:59 +09:00
4b730b4824
Set user permission bits if non-Unix platform
Run Unit Tests / build-and-run-unit-tests (push) Successful in 51s
2024-07-23 14:19:40 +09:00
3dc9e88e24
Fix improper handling of unsupported symlinks
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 5s
TODO:
Archive symlinks properly.
Extract symlinks properly.
2024-07-22 14:01:01 +09:00
dcff34e06b
Support "-f -" to read/write archive stdin/stdout
Run Unit Tests / build-and-run-unit-tests (push) Successful in 6s
2024-07-19 16:45:51 +09:00
613354034d
Use SIGPIPE handling on UNIX platforms
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
2024-07-19 12:15:20 +09:00
c1c4f048cb
Improve error handling
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
Handle SIGPIPE.
2024-07-19 12:13:54 +09:00
e7db978a3c
More robust error handling
Run Unit Tests / build-and-run-unit-tests (push) Successful in 5s
2024-07-19 11:29:14 +09:00
d30c30995f
Fix robust cleanup of temporary compressed file
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
2024-07-18 22:56:12 +09:00
5f8d6b0c0b
More robust handling of bad compressor cmd
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
2024-07-18 22:32:04 +09:00
72d2db378f
Do not create archive file on failure
2024-07-18 22:09:03 +09:00
7046dfb1e5
More robust cleanup of temporary file
2024-07-18 22:08:48 +09:00
1d85ddd0e9
Improve error print
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
2024-07-18 18:55:42 +09:00
ecb0c751d8
Print permissions when in "-t" mode
Run Unit Tests / build-and-run-unit-tests (push) Successful in 3s
2024-07-18 15:57:45 +09:00
99e1a2d850
Fix error when checking with "-t"
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
2024-07-18 15:49:22 +09:00
c4ff2347ff
Improve error printing
Run Unit Tests / build-and-run-unit-tests (push) Successful in 5s
2024-07-18 15:46:27 +09:00
c18e772928
Remove unnecessary "include"s
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
2024-07-18 15:36:09 +09:00
735d2b4f7a
Comment out debug print
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
2024-07-18 15:32:48 +09:00
4985672ea2
Impl. extract "white-list"
...
When extracting, the given positional args will determine a "white-list"
of files to extract. If no positional args are given, then all files in
the archive will be extracted.
2024-07-18 15:30:05 +09:00
0a6afe6148
Improve error handling when parsing/extracting
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
2024-07-18 14:39:01 +09:00
5b3a7e3994
Fix extracting when no compressor was used
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
2024-07-18 14:17:50 +09:00
4cb4184338
Store/restore file permissions
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
2024-07-18 14:02:15 +09:00
17f89e5a68
"Fix" windows build
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
2024-07-18 13:33:35 +09:00
da2a0f7b1c
Implement extracting from archive
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 5s
TODO:
Storing file permissions to be extracted with same permissions.
Archiving and extracting symbolic links.
2024-07-18 13:27:32 +09:00
0449ab389e
Add helper to create dirs from filepath
2024-07-18 11:53:00 +09:00
af235ff878
Use waitpid on compress to avoid defunct processes
Run Unit Tests / build-and-run-unit-tests (push) Successful in 3s
2024-07-17 19:00:34 +09:00
fe04dc7018
Output when writing file to archive
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
2024-07-17 17:22:44 +09:00
be67425d21
Impl. compressing with arbitrary command
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
TODO:
Archive extracting.
Create archive with symbolic links.
2024-07-17 16:37:32 +09:00
bbdcd660a5
Minor fixes
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
2024-07-17 15:01:39 +09:00
ea845f2552
Impl. setup for de/compression
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
Some setup code in preparation of doing the actual file compression when
creating an archive.
2024-07-17 14:32:39 +09:00
0299129ea6
"-t": Note that file is compressed if compressed
Run Unit Tests / build-and-run-unit-tests (push) Successful in 3s
2024-07-17 13:35:04 +09:00
2364f53649
Impl. "-t" command (printing archive info)
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
TODO:
Write symbolic links into archive when creating.
Use De/compressor cmds when creating archive.
Extracting archive.
2024-07-17 13:30:05 +09:00
58daa1130d
Update parser flags to allow "checking" with "-t"
Run Unit Tests / build-and-run-unit-tests (push) Successful in 3s
2024-07-17 12:13:33 +09:00
875e4bb2a4
Add "status progress" when archiving
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
2024-07-16 16:44:54 +09:00
41fde43eed
Impl. basic functionality "MVP"
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 48s
"MinimumViableProduct", resolves #2 .
TODO:
Support de/compressor cmds when creating archive.
Support symbolic links when creating archive.
Support extracting archive.
2024-07-16 16:16:58 +09:00
4670f0f3c1
big-endian convert: Use stdint.h
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 5s
Replace "unsigned short" with uint16_t, "unsigned int" with uint32_t,
and "unsigned long long" with uint64_t.
2024-07-15 17:00:49 +09:00
efffb8c147
Add "--overwrite-create"
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 45s
Default behavior is now to NOT overwrite existing archive files for
storing output unless "--overwrite-create" is specified.
2024-07-11 16:56:23 +09:00
58269d751c
Impl. handling symbolic links
Run Unit Tests / build-and-run-unit-tests (push) Successful in 3s
2024-07-04 14:48:56 +09:00
20cb6cb3aa
Remove unnecessary "TODO" in comment.
2024-07-04 13:50:32 +09:00
518ac3ebe1
parser: Enable existing codepath for OSX
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 5s
The Unix functions/headers used in parser for getting files/dirs from
the given positional arguments are also available in OSX
(theoretically), so they are now enabled for OSX platforms.
TODO: Add getting files/dirs code for the Windows platform.
2024-07-04 11:54:15 +09:00
6ee347da12
Handle symbolic links separately
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
Previous implementation could loop forever following a symbolic link
that goes backwards. This commit makes symbolic links an "unhandled file
type" for now.
2024-07-03 20:25:42 +09:00
c9df661cd3
"platforms.h" include should be before its usage
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
2024-07-03 20:01:19 +09:00
e06e65e5e8
Impl. parser accepting files and dirs
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
Fix memory leak in hash_map.
Current "main" prints specified files and subfiles of specified
directories.
TODO: Handle symbolic links
2024-07-03 19:56:26 +09:00
8d912ce780
Remove 'extern' from parser.h
2024-07-03 17:55:35 +09:00
69051a6c24
Add helpers for conversion to/from big-endian
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 3s
Also added tests for big-endian-conversion functions.
2024-07-02 14:25:01 +09:00
3172920c9c
Some work on arg parser
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 7s
Also added unit tests for arg parser.
2024-07-01 15:13:06 +09:00
467c09a0e4
Fix unit test for priority heap
Run Unit Tests / build-and-run-unit-tests (push) Successful in 3s
2024-06-30 20:02:47 +09:00
9e95c5e292
Change priority_heap to accept "less_fn"
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 3s
This allows for reverse order in the priority heap by using a "more_fn"
in place of a "less fn".
2024-06-30 17:29:24 +09:00
d815f67b2d
Minor fix to doc comment about priority heap
Run Unit Tests / build-and-run-unit-tests (push) Successful in 3s
2024-06-30 15:35:27 +09:00
fbe62ba5b2
Impl. priority heap, minor tweaks/fixes
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 3s
Implemented a priority heap.
Added tests for the priority heap.
Add a "default" lcg generator function.
Tweak hash_map to use the default lcg generator function.
`clang-format`.
2024-06-30 15:32:17 +09:00
ea919f3eb3
Add platforms.h
header to determine platform
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 3s
The platforms.h header will allow for using/implementing OS-specific
code that will differ based on the platform the program is compiled for.
2024-06-29 16:52:17 +09:00
aa2a1bf583
Fix hashing in hash_map (hopefully finally)
2024-06-28 18:19:29 +09:00
da72a2387f
Fix hash_map hashing (hopefully the final time)
2024-06-28 18:17:38 +09:00
c5b2ca6dff
Fix hashing in hash_map
2024-06-28 18:15:40 +09:00
d6878b0f1d
Revert "Minor additions to unit test of data structures"
...
This reverts commit f1bab48fb5
.
Unnecessary checks were added that were already checked by the preceding
for statement.
2024-06-28 17:40:29 +09:00
f1bab48fb5
Minor additions to unit test of data structures
2024-06-28 17:38:43 +09:00
4d260e4a7b
Impl. hash_map
...
Also implemented the linear congruential generator algorithm for
generating hash values for the hash_map.
Tweaks to linked_list api to support "check functions" with supplied
user data.
2024-06-28 17:31:34 +09:00
6ac7edbb3b
Implement a linked list data structure
2024-06-28 13:54:38 +09:00
c1b914cb8e
Remove unnecessary prints, clang-format
2024-06-27 13:30:18 +09:00
21752fb504
Fix invalid memory usage bug causing invalid free
...
realloc(...) was not used propertly. The number of items to be
reallocated was specified, but not the size of each item.
2024-06-27 13:28:53 +09:00
44080e85cc
Impl. parser (TODO Fix invalid free crash)
...
During testing, having at least three positional args cause an invalid
free crash. Should be investigated and fixed.
2024-06-27 11:57:29 +09:00
37b31beb63
Add LICENSE, README.md, and license info in source
2024-06-26 19:19:21 +09:00
5db711bd62
Create skeleton C project
2024-06-26 17:57:23 +09:00