Commit graph

55 commits

Author SHA1 Message Date
17f89e5a68 "Fix" windows build
All checks were successful
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
All checks were successful
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
All checks were successful
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
All checks were successful
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
All checks were successful
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
All checks were successful
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
All checks were successful
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
All checks were successful
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)
All checks were successful
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"
All checks were successful
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
All checks were successful
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"
All checks were successful
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
All checks were successful
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
cb79e4e45c Minor tweaks to file format
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 3s
2024-07-15 15:43:14 +09:00
efffb8c147 Add "--overwrite-create"
All checks were successful
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
e315ac5c33 Revise file_format.md
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 5s
Specify how symlink paths should be handled if they do not exist (path
size of 0).
2024-07-10 18:59:00 +09:00
58269d751c Impl. handling symbolic links
All checks were successful
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
e0373d693d Update file_format.md
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 45s
Make strings NULL-terminated.
2024-07-04 13:48:39 +09:00
004f4f2cd9 revise file_format.md
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 3s
2024-07-04 13:13:52 +09:00
174d30a8b6 Update file_format.md
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 3s
Resolves #11 .
2024-07-04 13:10:22 +09:00
518ac3ebe1 parser: Enable existing codepath for OSX
All checks were successful
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
All checks were successful
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
All checks were successful
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
All checks were successful
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
All checks were successful
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
eb1f09b551 Revise file_format
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
The changes should allow for the .simplearchive file to be directly
outputted to standard out in a single pass.

Resolves #10 .
2024-07-02 14:02:38 +09:00
3172920c9c Some work on arg parser
All checks were successful
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
All checks were successful
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"
All checks were successful
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
All checks were successful
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
All checks were successful
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
All checks were successful
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
86a68eef83 Add action/workflow to run unit tests
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 4s
Currently only runs `test_datastructures`.
2024-06-29 16:13:15 +09:00
aa00131020 Update README.md 2024-06-29 16:00:59 +09:00
0a2aef0fd1 Fix cosmopolitan/Makefile missing files 2024-06-28 19:35:06 +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
5b60a2fe1b Create Makefile for building with cosmocc
Resolves #9.
2024-06-28 13:02:26 +09:00
dc9ddcfa76 Update README.md 2024-06-27 17:21:59 +09:00
7c25300e2b Rename executable to lowercase 2024-06-27 17:20:46 +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