]> git.seodisparate.com - SimpleArchiver/log
SimpleArchiver
9 months agoFix error when checking with "-t"
Stephen Seo [Thu, 18 Jul 2024 06:49:22 +0000 (15:49 +0900)]
Fix error when checking with "-t"

9 months agoImprove error printing
Stephen Seo [Thu, 18 Jul 2024 06:46:27 +0000 (15:46 +0900)]
Improve error printing

9 months agoRemove unnecessary "include"s
Stephen Seo [Thu, 18 Jul 2024 06:36:09 +0000 (15:36 +0900)]
Remove unnecessary "include"s

9 months agoComment out debug print
Stephen Seo [Thu, 18 Jul 2024 06:32:48 +0000 (15:32 +0900)]
Comment out debug print

9 months agoImpl. extract "white-list"
Stephen Seo [Thu, 18 Jul 2024 06:30:05 +0000 (15:30 +0900)]
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.

9 months agoImprove error handling when parsing/extracting
Stephen Seo [Thu, 18 Jul 2024 05:39:01 +0000 (14:39 +0900)]
Improve error handling when parsing/extracting

9 months agoFix extracting when no compressor was used
Stephen Seo [Thu, 18 Jul 2024 05:17:50 +0000 (14:17 +0900)]
Fix extracting when no compressor was used

9 months agoStore/restore file permissions
Stephen Seo [Thu, 18 Jul 2024 05:02:15 +0000 (14:02 +0900)]
Store/restore file permissions

9 months ago"Fix" windows build
Stephen Seo [Thu, 18 Jul 2024 04:33:35 +0000 (13:33 +0900)]
"Fix" windows build

9 months agoImplement extracting from archive
Stephen Seo [Thu, 18 Jul 2024 04:16:24 +0000 (13:16 +0900)]
Implement extracting from archive

TODO:
    Storing file permissions to be extracted with same permissions.
    Archiving and extracting symbolic links.

9 months agoAdd helper to create dirs from filepath
Stephen Seo [Thu, 18 Jul 2024 02:53:00 +0000 (11:53 +0900)]
Add helper to create dirs from filepath

9 months agoUse waitpid on compress to avoid defunct processes
Stephen Seo [Wed, 17 Jul 2024 10:00:34 +0000 (19:00 +0900)]
Use waitpid on compress to avoid defunct processes

9 months agoOutput when writing file to archive
Stephen Seo [Wed, 17 Jul 2024 08:22:09 +0000 (17:22 +0900)]
Output when writing file to archive

9 months agoImpl. compressing with arbitrary command
Stephen Seo [Wed, 17 Jul 2024 07:37:32 +0000 (16:37 +0900)]
Impl. compressing with arbitrary command

TODO:
    Archive extracting.
    Create archive with symbolic links.

9 months agoMinor fixes
Stephen Seo [Wed, 17 Jul 2024 06:01:39 +0000 (15:01 +0900)]
Minor fixes

9 months agoImpl. setup for de/compression
Stephen Seo [Wed, 17 Jul 2024 05:32:39 +0000 (14:32 +0900)]
Impl. setup for de/compression

Some setup code in preparation of doing the actual file compression when
creating an archive.

9 months ago"-t": Note that file is compressed if compressed
Stephen Seo [Wed, 17 Jul 2024 04:35:04 +0000 (13:35 +0900)]
"-t": Note that file is compressed if compressed

9 months agoImpl. "-t" command (printing archive info)
Stephen Seo [Wed, 17 Jul 2024 04:30:05 +0000 (13:30 +0900)]
Impl. "-t" command (printing archive info)

TODO:
    Write symbolic links into archive when creating.
    Use De/compressor cmds when creating archive.
    Extracting archive.

9 months agoUpdate parser flags to allow "checking" with "-t"
Stephen Seo [Wed, 17 Jul 2024 03:13:33 +0000 (12:13 +0900)]
Update parser flags to allow "checking" with "-t"

9 months agoAdd "status progress" when archiving
Stephen Seo [Tue, 16 Jul 2024 07:44:54 +0000 (16:44 +0900)]
Add "status progress" when archiving

9 months agoImpl. basic functionality "MVP"
Stephen Seo [Tue, 16 Jul 2024 07:16:58 +0000 (16:16 +0900)]
Impl. basic functionality "MVP"

"MinimumViableProduct", resolves #2 .

TODO:
  Support de/compressor cmds when creating archive.
  Support symbolic links when creating archive.
  Support extracting archive.

9 months agobig-endian convert: Use stdint.h
Stephen Seo [Mon, 15 Jul 2024 07:59:15 +0000 (16:59 +0900)]
big-endian convert: Use stdint.h

Replace "unsigned short" with uint16_t, "unsigned int" with uint32_t,
and "unsigned long long" with uint64_t.

9 months agoMinor tweaks to file format
Stephen Seo [Mon, 15 Jul 2024 06:43:14 +0000 (15:43 +0900)]
Minor tweaks to file format

9 months agoAdd "--overwrite-create"
Stephen Seo [Thu, 11 Jul 2024 07:56:23 +0000 (16:56 +0900)]
Add "--overwrite-create"

Default behavior is now to NOT overwrite existing archive files for
storing output unless "--overwrite-create" is specified.

9 months agoRevise file_format.md
Stephen Seo [Sun, 7 Jul 2024 05:43:32 +0000 (14:43 +0900)]
Revise file_format.md

Specify how symlink paths should be handled if they do not exist (path
size of 0).

9 months agoImpl. handling symbolic links
Stephen Seo [Thu, 4 Jul 2024 05:48:56 +0000 (14:48 +0900)]
Impl. handling symbolic links

9 months agoRemove unnecessary "TODO" in comment.
Stephen Seo [Thu, 4 Jul 2024 04:50:32 +0000 (13:50 +0900)]
Remove unnecessary "TODO" in comment.

9 months agoUpdate file_format.md
Stephen Seo [Thu, 4 Jul 2024 04:48:39 +0000 (13:48 +0900)]
Update file_format.md

Make strings NULL-terminated.

9 months agorevise file_format.md
Stephen Seo [Thu, 4 Jul 2024 04:13:52 +0000 (13:13 +0900)]
revise file_format.md

9 months agoUpdate file_format.md
Stephen Seo [Thu, 4 Jul 2024 04:10:22 +0000 (13:10 +0900)]
Update file_format.md

Resolves #11 .

9 months agoparser: Enable existing codepath for OSX
Stephen Seo [Thu, 4 Jul 2024 02:54:15 +0000 (11:54 +0900)]
parser: Enable existing codepath for OSX

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.

9 months agoHandle symbolic links separately
Stephen Seo [Wed, 3 Jul 2024 11:25:42 +0000 (20:25 +0900)]
Handle symbolic links separately

Previous implementation could loop forever following a symbolic link
that goes backwards. This commit makes symbolic links an "unhandled file
type" for now.

9 months ago"platforms.h" include should be before its usage
Stephen Seo [Wed, 3 Jul 2024 11:01:03 +0000 (20:01 +0900)]
"platforms.h" include should be before its usage

9 months agoImpl. parser accepting files and dirs
Stephen Seo [Wed, 3 Jul 2024 10:54:44 +0000 (19:54 +0900)]
Impl. parser accepting files and dirs

Fix memory leak in hash_map.

Current "main" prints specified files and subfiles of specified
directories.

TODO: Handle symbolic links

9 months agoRemove 'extern' from parser.h
Stephen Seo [Wed, 3 Jul 2024 08:55:35 +0000 (17:55 +0900)]
Remove 'extern' from parser.h

9 months agoAdd helpers for conversion to/from big-endian
Stephen Seo [Tue, 2 Jul 2024 05:25:01 +0000 (14:25 +0900)]
Add helpers for conversion to/from big-endian

Also added tests for big-endian-conversion functions.

9 months agoRevise file_format
Stephen Seo [Tue, 2 Jul 2024 05:02:38 +0000 (14:02 +0900)]
Revise file_format

The changes should allow for the .simplearchive file to be directly
outputted to standard out in a single pass.

Resolves #10 .

9 months agoSome work on arg parser
Stephen Seo [Mon, 1 Jul 2024 06:13:06 +0000 (15:13 +0900)]
Some work on arg parser

Also added unit tests for arg parser.

9 months agoFix unit test for priority heap
Stephen Seo [Sun, 30 Jun 2024 11:02:47 +0000 (20:02 +0900)]
Fix unit test for priority heap

9 months agoChange priority_heap to accept "less_fn"
Stephen Seo [Sun, 30 Jun 2024 08:29:24 +0000 (17:29 +0900)]
Change priority_heap to accept "less_fn"

This allows for reverse order in the priority heap by using a "more_fn"
in place of a "less fn".

9 months agoMinor fix to doc comment about priority heap
Stephen Seo [Sun, 30 Jun 2024 06:35:27 +0000 (15:35 +0900)]
Minor fix to doc comment about priority heap

9 months agoImpl. priority heap, minor tweaks/fixes
Stephen Seo [Sun, 30 Jun 2024 06:32:17 +0000 (15:32 +0900)]
Impl. priority heap, minor tweaks/fixes

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`.

9 months agoAdd `platforms.h` header to determine platform
Stephen Seo [Sat, 29 Jun 2024 07:52:17 +0000 (16:52 +0900)]
Add `platforms.h` header to determine platform

The platforms.h header will allow for using/implementing OS-specific
code that will differ based on the platform the program is compiled for.

9 months agoAdd action/workflow to run unit tests
Stephen Seo [Sat, 29 Jun 2024 07:13:15 +0000 (16:13 +0900)]
Add action/workflow to run unit tests

Currently only runs `test_datastructures`.

9 months agoUpdate README.md
Stephen Seo [Sat, 29 Jun 2024 07:00:59 +0000 (16:00 +0900)]
Update README.md

9 months agoFix cosmopolitan/Makefile missing files
Stephen Seo [Fri, 28 Jun 2024 10:35:06 +0000 (19:35 +0900)]
Fix cosmopolitan/Makefile missing files

9 months agoFix hashing in hash_map (hopefully finally)
Stephen Seo [Fri, 28 Jun 2024 09:19:29 +0000 (18:19 +0900)]
Fix hashing in hash_map (hopefully finally)

9 months agoFix hash_map hashing (hopefully the final time)
Stephen Seo [Fri, 28 Jun 2024 09:17:38 +0000 (18:17 +0900)]
Fix hash_map hashing (hopefully the final time)

9 months agoFix hashing in hash_map
Stephen Seo [Fri, 28 Jun 2024 09:15:40 +0000 (18:15 +0900)]
Fix hashing in hash_map

9 months agoRevert "Minor additions to unit test of data structures"
Stephen Seo [Fri, 28 Jun 2024 08:40:29 +0000 (17:40 +0900)]
Revert "Minor additions to unit test of data structures"

This reverts commit f1bab48fb5a296c55c2ba092474c9f351fcde045.

Unnecessary checks were added that were already checked by the preceding
for statement.

9 months agoMinor additions to unit test of data structures
Stephen Seo [Fri, 28 Jun 2024 08:38:43 +0000 (17:38 +0900)]
Minor additions to unit test of data structures

9 months agoImpl. hash_map
Stephen Seo [Fri, 28 Jun 2024 08:31:34 +0000 (17:31 +0900)]
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.

9 months agoImplement a linked list data structure
Stephen Seo [Fri, 28 Jun 2024 04:54:38 +0000 (13:54 +0900)]
Implement a linked list data structure

9 months agoCreate Makefile for building with cosmocc
Stephen Seo [Fri, 28 Jun 2024 04:02:26 +0000 (13:02 +0900)]
Create Makefile for building with cosmocc

Resolves #9.

9 months agoUpdate README.md
Stephen Seo [Thu, 27 Jun 2024 08:21:59 +0000 (17:21 +0900)]
Update README.md

9 months agoRename executable to lowercase
Stephen Seo [Thu, 27 Jun 2024 08:20:46 +0000 (17:20 +0900)]
Rename executable to lowercase

9 months agoRemove unnecessary prints, `clang-format`
Stephen Seo [Thu, 27 Jun 2024 04:30:18 +0000 (13:30 +0900)]
Remove unnecessary prints, `clang-format`

9 months agoFix invalid memory usage bug causing invalid free
Stephen Seo [Thu, 27 Jun 2024 04:28:53 +0000 (13:28 +0900)]
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.

9 months agoImpl. parser (TODO Fix invalid free crash) stream_03
Stephen Seo [Thu, 27 Jun 2024 02:57:29 +0000 (11:57 +0900)]
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.

9 months agoUpdate file_format.md
Stephen Seo [Thu, 27 Jun 2024 01:36:06 +0000 (10:36 +0900)]
Update file_format.md

Add support for per-file compressing by storing the
compressor/decompressor commands in the per-file header part of the
.simplearchive.

9 months agoDefine file format (version 0 file format)
Stephen Seo [Thu, 27 Jun 2024 01:14:10 +0000 (10:14 +0900)]
Define file format (version 0 file format)

Resolves #1.

9 months agoAdd LICENSE, README.md, and license info in source
Stephen Seo [Wed, 26 Jun 2024 10:19:21 +0000 (19:19 +0900)]
Add LICENSE, README.md, and license info in source

9 months agoCreate skeleton C project
Stephen Seo [Wed, 26 Jun 2024 08:57:23 +0000 (17:57 +0900)]
Create skeleton C project