]> git.seodisparate.com/gitweb - SimpleArchiver/log
SimpleArchiver
9 months agoImprove error handling
Stephen Seo [Fri, 19 Jul 2024 03:13:54 +0000 (12:13 +0900)]
Improve error handling

Handle SIGPIPE.

9 months agoMore robust error handling
Stephen Seo [Fri, 19 Jul 2024 02:29:14 +0000 (11:29 +0900)]
More robust error handling

9 months agoFix robust cleanup of temporary compressed file
Stephen Seo [Thu, 18 Jul 2024 13:56:12 +0000 (22:56 +0900)]
Fix robust cleanup of temporary compressed file

9 months agoMore robust handling of bad compressor cmd
Stephen Seo [Thu, 18 Jul 2024 13:32:04 +0000 (22:32 +0900)]
More robust handling of bad compressor cmd

9 months agoDo not create archive file on failure
Stephen Seo [Thu, 18 Jul 2024 13:09:03 +0000 (22:09 +0900)]
Do not create archive file on failure

9 months agoMore robust cleanup of temporary file
Stephen Seo [Thu, 18 Jul 2024 13:08:48 +0000 (22:08 +0900)]
More robust cleanup of temporary file

9 months agoImprove error print
Stephen Seo [Thu, 18 Jul 2024 09:55:42 +0000 (18:55 +0900)]
Improve error print

9 months agoPrint permissions when in "-t" mode
Stephen Seo [Thu, 18 Jul 2024 06:57:45 +0000 (15:57 +0900)]
Print permissions when in "-t" mode

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

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

10 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)

10 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)

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

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

10 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

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

10 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

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

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

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

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

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

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

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

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

10 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

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