]> git.seodisparate.com - SimpleArchiver/log
SimpleArchiver
6 months agoAdd filename validation for test/extracting
Stephen Seo [Fri, 4 Oct 2024 12:24:10 +0000 (21:24 +0900)]
Add filename validation for test/extracting

This should prevent creation of files/symlinks outside of
current-working-directory or user-set-cwd.

6 months agoFix release build compiler warnings
Stephen Seo [Fri, 4 Oct 2024 08:46:30 +0000 (17:46 +0900)]
Fix release build compiler warnings

6 months agoFix reordering of cleanup fns in archiver.c
Stephen Seo [Fri, 4 Oct 2024 08:35:12 +0000 (17:35 +0900)]
Fix reordering of cleanup fns in archiver.c

6 months agoReorder cleanup to proper location
Stephen Seo [Fri, 4 Oct 2024 08:32:14 +0000 (17:32 +0900)]
Reorder cleanup to proper location

6 months agoImpl. create archive with compression, fixes
Stephen Seo [Fri, 4 Oct 2024 08:20:01 +0000 (17:20 +0900)]
Impl. create archive with compression, fixes

6 months agoWIP Impl. archiving without compression
Stephen Seo [Fri, 4 Oct 2024 06:36:53 +0000 (15:36 +0900)]
WIP Impl. archiving without compression

TODO:
    archiving with compression

6 months agoUpdate file_format for v1
Stephen Seo [Fri, 4 Oct 2024 05:02:54 +0000 (14:02 +0900)]
Update file_format for v1

Size of bytes for files per chunk was changed from 2 bytes to 4 bytes.

6 months agoWIP Work on v1 create archive
Stephen Seo [Fri, 4 Oct 2024 03:27:46 +0000 (12:27 +0900)]
WIP Work on v1 create archive

Implemented file-format up to list of symlinks.

6 months agoRefactor function, add its declaration to header
Stephen Seo [Fri, 4 Oct 2024 02:19:57 +0000 (11:19 +0900)]
Refactor function, add its declaration to header

6 months agoRefactorings for v1 extract, other refactorings
Stephen Seo [Wed, 2 Oct 2024 06:10:22 +0000 (15:10 +0900)]
Refactorings for v1 extract, other refactorings

6 months agoSplit "rel-path-from-abs-paths" into function
Stephen Seo [Wed, 2 Oct 2024 04:15:30 +0000 (13:15 +0900)]
Split "rel-path-from-abs-paths" into function

6 months agoAdd support for writing multiple file formats
Stephen Seo [Wed, 2 Oct 2024 02:38:39 +0000 (11:38 +0900)]
Add support for writing multiple file formats

6 months agoTest/fix symlink test/extract in v1 file format
Stephen Seo [Mon, 30 Sep 2024 08:53:39 +0000 (17:53 +0900)]
Test/fix symlink test/extract in v1 file format

6 months agoFix v1 archive decompression
Stephen Seo [Mon, 30 Sep 2024 06:45:48 +0000 (15:45 +0900)]
Fix v1 archive decompression

Previous implementation sent too many bytes to decompressor if size was
less than 1024.

6 months agoRemove unnecessary printf used for testing
Stephen Seo [Mon, 30 Sep 2024 06:15:00 +0000 (15:15 +0900)]
Remove unnecessary printf used for testing

6 months agoImpl. extract with decompressor file format v1
Stephen Seo [Mon, 30 Sep 2024 05:54:01 +0000 (14:54 +0900)]
Impl. extract with decompressor file format v1

6 months agov1 extract skip non-specified args if exists
Stephen Seo [Mon, 30 Sep 2024 04:12:39 +0000 (13:12 +0900)]
v1 extract skip non-specified args if exists

6 months agoImpl. setting stored UID/GID if EUID 0
Stephen Seo [Fri, 27 Sep 2024 07:09:23 +0000 (16:09 +0900)]
Impl. setting stored UID/GID if EUID 0

6 months ago"Fix" Linux/Mac/Unix usage
Stephen Seo [Fri, 27 Sep 2024 06:46:54 +0000 (15:46 +0900)]
"Fix" Linux/Mac/Unix usage

6 months agoImpl. simple test/extract new file format (WIP)
Stephen Seo [Fri, 27 Sep 2024 06:40:11 +0000 (15:40 +0900)]
Impl. simple test/extract new file format (WIP)

TODO:
    Extract symlinks in new format (implemented but untested).
    Extract compressed files in new format.

6 months agoSplit up handling of archive file based on version
Stephen Seo [Fri, 27 Sep 2024 03:58:53 +0000 (12:58 +0900)]
Split up handling of archive file based on version

6 months agoFix typo
Stephen Seo [Tue, 24 Sep 2024 09:54:38 +0000 (18:54 +0900)]
Fix typo

6 months agoFix typo in file format specification version 1
Stephen Seo [Tue, 24 Sep 2024 09:48:15 +0000 (18:48 +0900)]
Fix typo in file format specification version 1

6 months agoCreate file format for format version 1
Stephen Seo [Tue, 24 Sep 2024 09:43:47 +0000 (18:43 +0900)]
Create file format for format version 1

This is in preparation of improving compression by concatenating files
together before compressing them to reduce the per-file overhead.

6 months agobackport: Fixes for v0-file-format extract fn
Stephen Seo [Wed, 2 Oct 2024 05:52:05 +0000 (14:52 +0900)]
backport: Fixes for v0-file-format extract fn

6 months agoError if "-C <dir>" where "dir" doesn't exist
Stephen Seo [Mon, 30 Sep 2024 10:16:29 +0000 (19:16 +0900)]
Error if "-C <dir>" where "dir" doesn't exist

6 months agoFix potential NULL-ptr dereference
Stephen Seo [Sat, 28 Sep 2024 10:07:12 +0000 (19:07 +0900)]
Fix potential NULL-ptr dereference

6 months agoAdd compiler hardening flags
Stephen Seo [Thu, 26 Sep 2024 08:31:06 +0000 (17:31 +0900)]
Add compiler hardening flags

7 months agoImpl. way to set custom hasher for hash_map
Stephen Seo [Sat, 21 Sep 2024 09:43:23 +0000 (18:43 +0900)]
Impl. way to set custom hasher for hash_map

7 months agoConvert "unsigned long long" to "uint64_t"
Stephen Seo [Sat, 21 Sep 2024 02:55:26 +0000 (11:55 +0900)]
Convert "unsigned long long" to "uint64_t"

Missed during previous changes using stdint.h .

7 months ago`clang-format`
Stephen Seo [Sat, 21 Sep 2024 02:43:25 +0000 (11:43 +0900)]
`clang-format`

7 months agoUse stdint.h types instead of "int", "long", etc.
Stephen Seo [Fri, 20 Sep 2024 12:40:35 +0000 (21:40 +0900)]
Use stdint.h types instead of "int", "long", etc.

7 months agoAdd single-ptr variants data structures' free fns
Stephen Seo [Fri, 13 Sep 2024 03:51:09 +0000 (12:51 +0900)]
Add single-ptr variants data structures' free fns

7 months agoRefactor priority-heap insert fn
Stephen Seo [Fri, 13 Sep 2024 02:33:15 +0000 (11:33 +0900)]
Refactor priority-heap insert fn

priority-heap insert now takes a pointer to a priority-heap instead of a
double pointer.

7 months agoRefactor data_structures/hash_map rehash fn
Stephen Seo [Wed, 11 Sep 2024 03:46:27 +0000 (12:46 +0900)]
Refactor data_structures/hash_map rehash fn

7 months agoCleanup related to change of hash-map insert fn
Stephen Seo [Mon, 9 Sep 2024 08:10:17 +0000 (17:10 +0900)]
Cleanup related to change of hash-map insert fn

7 months agoRefactor hash_map insert to use single ptr
Stephen Seo [Mon, 9 Sep 2024 02:25:00 +0000 (11:25 +0900)]
Refactor hash_map insert to use single ptr

Previous implementation used a double ptr for inserting into a hash map.
This refactoring allows for only needing to use a single ptr.

Fixes https://git.seodisparate.com/stephenseo/SimpleArchiver/issues/17 .

7 months agoFixes related to compiler warnings
Stephen Seo [Fri, 6 Sep 2024 05:23:27 +0000 (14:23 +0900)]
Fixes related to compiler warnings

Fix integer mismatch usages/comparisons.

Use "size_t" instead of "unsigned int" for data structures.

7 months agohash_map: Use const where applicable
Stephen Seo [Wed, 4 Sep 2024 06:30:37 +0000 (15:30 +0900)]
hash_map: Use const where applicable

7 months agohash_map iter fn: const key-value, update unittest
Stephen Seo [Sun, 1 Sep 2024 06:40:17 +0000 (15:40 +0900)]
hash_map iter fn: const key-value, update unittest

7 months agoImpl. hash_map iter, clang-format
Stephen Seo [Sun, 1 Sep 2024 06:11:57 +0000 (15:11 +0900)]
Impl. hash_map iter, clang-format

7 months agoSwitch to ISC License
Stephen Seo [Fri, 30 Aug 2024 02:35:17 +0000 (11:35 +0900)]
Switch to ISC License

8 months agoCleanup/refactorings
Stephen Seo [Mon, 29 Jul 2024 07:31:10 +0000 (16:31 +0900)]
Cleanup/refactorings

Moved common functions to helpers.h, and similar cleanup/refactorings.

8 months agoAdd NULL check when printing cwd on temp file fail
Stephen Seo [Fri, 26 Jul 2024 07:25:02 +0000 (16:25 +0900)]
Add NULL check when printing cwd on temp file fail

8 months agoMore verbose log when failing to create temp file
Stephen Seo [Fri, 26 Jul 2024 07:23:50 +0000 (16:23 +0900)]
More verbose log when failing to create temp file

8 months agoImprove file-count logs
Stephen Seo [Fri, 26 Jul 2024 07:18:07 +0000 (16:18 +0900)]
Improve file-count logs

8 months agoAdd check if file(s) are readable when archiving
Stephen Seo [Fri, 26 Jul 2024 07:01:39 +0000 (16:01 +0900)]
Add check if file(s) are readable when archiving

Also some minor changes like more error logs and refactorings.

8 months ago"Fix" windows build
Stephen Seo [Fri, 26 Jul 2024 04:23:51 +0000 (13:23 +0900)]
"Fix" windows build

TODO:
    Native Windows implementation.

8 months agoFix "-C <dir>" usage
Stephen Seo [Fri, 26 Jul 2024 04:17:11 +0000 (13:17 +0900)]
Fix "-C <dir>" usage

TODO:
    Merge re-used functions into "helpers".

8 months agoUpdate README.md
Stephen Seo [Fri, 26 Jul 2024 03:42:43 +0000 (12:42 +0900)]
Update README.md

8 months agoImpl. "-C <dir>", refactorings
Stephen Seo [Fri, 26 Jul 2024 03:39:56 +0000 (12:39 +0900)]
Impl. "-C <dir>", refactorings

8 months agoUpdate README.md
Stephen Seo [Thu, 25 Jul 2024 01:46:00 +0000 (10:46 +0900)]
Update README.md

8 months agoImpl. being able to set dir for temporary files
Stephen Seo [Thu, 25 Jul 2024 01:42:31 +0000 (10:42 +0900)]
Impl. being able to set dir for temporary files

8 months agoRefactor parser, setup for different temp dir
Stephen Seo [Thu, 25 Jul 2024 01:26:34 +0000 (10:26 +0900)]
Refactor parser, setup for different temp dir

8 months agoMinor help-text/doc fix
Stephen Seo [Wed, 24 Jul 2024 06:27:05 +0000 (15:27 +0900)]
Minor help-text/doc fix

8 months agoUpdate README.md
Stephen Seo [Wed, 24 Jul 2024 06:24:44 +0000 (15:24 +0900)]
Update README.md

8 months agoUpdate README.md
Stephen Seo [Wed, 24 Jul 2024 06:22:39 +0000 (15:22 +0900)]
Update README.md

8 months agoUpdate README.md
Stephen Seo [Wed, 24 Jul 2024 06:21:04 +0000 (15:21 +0900)]
Update README.md

8 months agoComment out debug print
Stephen Seo [Wed, 24 Jul 2024 06:05:01 +0000 (15:05 +0900)]
Comment out debug print

8 months ago"Fix" windows build
Stephen Seo [Wed, 24 Jul 2024 06:03:34 +0000 (15:03 +0900)]
"Fix" windows build

8 months agoImpl. link extracting
Stephen Seo [Wed, 24 Jul 2024 05:52:35 +0000 (14:52 +0900)]
Impl. link extracting

8 months agoAdd abs_path check when referring out of archive
Stephen Seo [Wed, 24 Jul 2024 05:31:38 +0000 (14:31 +0900)]
Add abs_path check when referring out of archive

If absolute paths are enabled, and a link points to something outside of
the archive, a flag is set on the symlink entry to prefer absolute
paths.

8 months agoCreate "set" of filenames for use when archiving
Stephen Seo [Wed, 24 Jul 2024 05:05:05 +0000 (14:05 +0900)]
Create "set" of filenames for use when archiving

8 months agoSplit off code into internal helper function
Stephen Seo [Wed, 24 Jul 2024 05:04:19 +0000 (14:04 +0900)]
Split off code into internal helper function

Function gets absolute path to given filename.

8 months agoMinor tweak to includes in archiver
Stephen Seo [Wed, 24 Jul 2024 05:03:03 +0000 (14:03 +0900)]
Minor tweak to includes in archiver

8 months agoUpdate file_format.md
Stephen Seo [Wed, 24 Jul 2024 04:33:46 +0000 (13:33 +0900)]
Update file_format.md

8 months agoAdd "--no-abs-symlink" to not store absolute paths
Stephen Seo [Wed, 24 Jul 2024 04:32:39 +0000 (13:32 +0900)]
Add "--no-abs-symlink" to not store absolute paths

8 months agoImpl. archiving abs/rel-paths for symbolic links
Stephen Seo [Tue, 23 Jul 2024 06:28:59 +0000 (15:28 +0900)]
Impl. archiving abs/rel-paths for symbolic links

TODO:
    Choosing the ideal link based on if link points to an archived file.
    Extracting (creating) symbolic links from archive.

8 months agoSet user permission bits if non-Unix platform
Stephen Seo [Tue, 23 Jul 2024 05:16:57 +0000 (14:16 +0900)]
Set user permission bits if non-Unix platform

9 months agoFix improper handling of unsupported symlinks
Stephen Seo [Mon, 22 Jul 2024 05:01:01 +0000 (14:01 +0900)]
Fix improper handling of unsupported symlinks

TODO:
    Archive symlinks properly.
    Extract symlinks properly.

9 months agoSupport "-f -" to read/write archive stdin/stdout
Stephen Seo [Fri, 19 Jul 2024 07:45:51 +0000 (16:45 +0900)]
Support "-f -" to read/write archive stdin/stdout

9 months agoUse SIGPIPE handling on UNIX platforms
Stephen Seo [Fri, 19 Jul 2024 03:15:20 +0000 (12:15 +0900)]
Use SIGPIPE handling on UNIX platforms

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