]> git.seodisparate.com - SimpleArchiver/log
SimpleArchiver
3 months agoSanity checks for handling temporary files cleanup
Stephen Seo [Thu, 26 Dec 2024 01:46:32 +0000 (10:46 +0900)]
Sanity checks for handling temporary files cleanup

3 months agoAlso fix creating temp_file for creating v1 file
Stephen Seo [Thu, 26 Dec 2024 01:40:04 +0000 (10:40 +0900)]
Also fix creating temp_file for creating v1 file

3 months agoFix Changelog.md
Stephen Seo [Wed, 25 Dec 2024 12:28:06 +0000 (21:28 +0900)]
Fix Changelog.md

3 months agoUpdate Changelog.md
Stephen Seo [Wed, 25 Dec 2024 12:18:26 +0000 (21:18 +0900)]
Update Changelog.md

3 months agoFix case when archiving from read-only directory
Stephen Seo [Wed, 25 Dec 2024 12:16:52 +0000 (21:16 +0900)]
Fix case when archiving from read-only directory

A temporary file is usually created to store compressed archive
chunks/files which is located where the files are. This commit
falls-back to using `tmpfile()` if the first attempt to create a
temporary file fails.

3 months agoUpdate README.md
Stephen Seo [Wed, 25 Dec 2024 04:58:05 +0000 (13:58 +0900)]
Update README.md

3 months agoForce set dir permissions when specified
Stephen Seo [Wed, 25 Dec 2024 03:46:27 +0000 (12:46 +0900)]
Force set dir permissions when specified

The previous behavior refused to set `write` for `group` and `other`
when setting directory permissions.

This commit changes this so that when permissions are specified, then
the directory is `chmod`d after its creation.

3 months agoUpdate README.md
Stephen Seo [Tue, 24 Dec 2024 02:25:17 +0000 (11:25 +0900)]
Update README.md

3 months agoUpdate help text
Stephen Seo [Tue, 24 Dec 2024 01:55:54 +0000 (10:55 +0900)]
Update help text

3 months agoMinor tweaks, set uid/gid if euid is 0
Stephen Seo [Tue, 24 Dec 2024 01:47:14 +0000 (10:47 +0900)]
Minor tweaks, set uid/gid if euid is 0

3 months agoUpdate Changelog.md
Stephen Seo [Mon, 23 Dec 2024 08:43:30 +0000 (17:43 +0900)]
Update Changelog.md

3 months agoMinor tweak to unit tests
Stephen Seo [Mon, 23 Dec 2024 08:42:18 +0000 (17:42 +0900)]
Minor tweak to unit tests

3 months agoImprove file format v2 output for directories
Stephen Seo [Mon, 23 Dec 2024 08:42:01 +0000 (17:42 +0900)]
Improve file format v2 output for directories

3 months agoImpl force file/dir permissions
Stephen Seo [Mon, 23 Dec 2024 08:40:47 +0000 (17:40 +0900)]
Impl force file/dir permissions

Added "--force-file-permissions" and "--force-dir-permissions".

Also added "--force-uid" and "--force-gid".

4 months agoSet version in CMakeLists.txt to 1.9
Stephen Seo [Fri, 20 Dec 2024 02:21:45 +0000 (11:21 +0900)]
Set version in CMakeLists.txt to 1.9

4 months agoMerge branch 'dev', version 1.9 1.9
Stephen Seo [Fri, 20 Dec 2024 02:14:42 +0000 (11:14 +0900)]
Merge branch 'dev', version 1.9

4 months agoVersion 1.9, Update Changelog.md
Stephen Seo [Fri, 20 Dec 2024 02:01:31 +0000 (11:01 +0900)]
Version 1.9, Update Changelog.md

4 months agoRemove DEBUG outputs, fix outputs
Stephen Seo [Fri, 20 Dec 2024 02:00:55 +0000 (11:00 +0900)]
Remove DEBUG outputs, fix outputs

4 months agoUpdate README.md
Stephen Seo [Thu, 19 Dec 2024 04:54:57 +0000 (13:54 +0900)]
Update README.md

4 months agoUpdate Changelog.md
Stephen Seo [Thu, 19 Dec 2024 04:50:04 +0000 (13:50 +0900)]
Update Changelog.md

4 months agoFix edge case where only empty files are archived
Stephen Seo [Thu, 19 Dec 2024 04:41:58 +0000 (13:41 +0900)]
Fix edge case where only empty files are archived

4 months agoImpl file format 2 (store empty dirs)
Stephen Seo [Thu, 19 Dec 2024 04:30:20 +0000 (13:30 +0900)]
Impl file format 2 (store empty dirs)

4 months agoAmend file_format for "format version 2"
Stephen Seo [Thu, 19 Dec 2024 01:59:39 +0000 (10:59 +0900)]
Amend file_format for "format version 2"

4 months agoRemove forgejo workflows/action
Stephen Seo [Wed, 18 Dec 2024 11:26:32 +0000 (20:26 +0900)]
Remove forgejo workflows/action

4 months agoAdd Github workflow/action for unit tests
Stephen Seo [Wed, 18 Dec 2024 11:22:14 +0000 (20:22 +0900)]
Add Github workflow/action for unit tests

4 months agoUpdate README.md
Stephen Seo [Tue, 17 Dec 2024 08:40:50 +0000 (17:40 +0900)]
Update README.md

4 months agoUpdate README.md
Stephen Seo [Tue, 17 Dec 2024 08:40:50 +0000 (17:40 +0900)]
Update README.md

4 months agoAdd priority_heap iter and unit test
Stephen Seo [Wed, 4 Dec 2024 06:16:12 +0000 (15:16 +0900)]
Add priority_heap iter and unit test

4 months agoVersion 1.8 1.8
Stephen Seo [Mon, 25 Nov 2024 08:18:30 +0000 (17:18 +0900)]
Version 1.8

4 months agoUpdate Changelog.md
Stephen Seo [Mon, 25 Nov 2024 08:18:04 +0000 (17:18 +0900)]
Update Changelog.md

4 months agoUse proper format constants for size_t/uintX_t etc
Stephen Seo [Mon, 25 Nov 2024 08:17:06 +0000 (17:17 +0900)]
Use proper format constants for size_t/uintX_t etc

5 months agoUpdate Changelog.md 1.7
Stephen Seo [Fri, 15 Nov 2024 08:39:10 +0000 (17:39 +0900)]
Update Changelog.md

5 months agoBump CMakeLists.txt cmake_minimum_required version
Stephen Seo [Fri, 15 Nov 2024 08:38:38 +0000 (17:38 +0900)]
Bump CMakeLists.txt cmake_minimum_required version

5 months agoUpdate CMakeLists.txt (version 1.7)
Stephen Seo [Fri, 15 Nov 2024 08:37:23 +0000 (17:37 +0900)]
Update CMakeLists.txt (version 1.7)

5 months agoUpdate Changelog.md, version 1.7
Stephen Seo [Fri, 15 Nov 2024 08:37:06 +0000 (17:37 +0900)]
Update Changelog.md, version 1.7

5 months agoRefactor hash-map
Stephen Seo [Fri, 15 Nov 2024 08:36:07 +0000 (17:36 +0900)]
Refactor hash-map

Tweaked the default hash function and hash-map-bucket-size.

5 months agoUpdate README.md
Stephen Seo [Wed, 30 Oct 2024 09:56:51 +0000 (18:56 +0900)]
Update README.md

5 months agoVersion 1.6 1.6
Stephen Seo [Mon, 28 Oct 2024 04:45:21 +0000 (13:45 +0900)]
Version 1.6

5 months agoUpdate Changelog.md
Stephen Seo [Thu, 24 Oct 2024 07:41:46 +0000 (16:41 +0900)]
Update Changelog.md

5 months agoAdd option to preserve symlinks exactly
Stephen Seo [Thu, 24 Oct 2024 07:37:55 +0000 (16:37 +0900)]
Add option to preserve symlinks exactly

The "--preserve-symlinks" option preserves the symlink target instead of
deriving absolute/relative-paths from it. If archived symlinks are
absolute-paths, then it is NOT recommended to use this option as the
symlinks can be clobbered on extraction (unless if "--no-safe-links" is
specified on extraction).

5 months agoMinor cleanup
Stephen Seo [Thu, 24 Oct 2024 05:51:46 +0000 (14:51 +0900)]
Minor cleanup

5 months agoUpdate Changelog.md
Stephen Seo [Thu, 24 Oct 2024 05:00:06 +0000 (14:00 +0900)]
Update Changelog.md

5 months agoSafe-links enforce on extract, fixes/refactorings
Stephen Seo [Thu, 24 Oct 2024 04:40:29 +0000 (13:40 +0900)]
Safe-links enforce on extract, fixes/refactorings

Resolves https://git.seodisparate.com/stephenseo/SimpleArchiver/issues/20

6 months agoVersion 1.5, update Changelog.md 1.5
Stephen Seo [Mon, 21 Oct 2024 08:37:24 +0000 (17:37 +0900)]
Version 1.5, update Changelog.md

6 months agoFix where symlink marked invalid still created v1
Stephen Seo [Mon, 21 Oct 2024 08:35:55 +0000 (17:35 +0900)]
Fix where symlink marked invalid still created v1

6 months agoVersion 1.4 1.4
Stephen Seo [Mon, 21 Oct 2024 08:22:29 +0000 (17:22 +0900)]
Version 1.4

Resolves https://git.seodisparate.com/stephenseo/SimpleArchiver/issues/19

6 months agoUpdate README.md
Stephen Seo [Mon, 21 Oct 2024 08:22:08 +0000 (17:22 +0900)]
Update README.md

6 months agoUpdate Changelog.md
Stephen Seo [Mon, 21 Oct 2024 08:21:15 +0000 (17:21 +0900)]
Update Changelog.md

6 months agoImpl. safe-link checking for v1 file format
Stephen Seo [Mon, 21 Oct 2024 08:10:34 +0000 (17:10 +0900)]
Impl. safe-link checking for v1 file format

As mentioned in the previous commit, "safe links" is on by default,
meaning that any symlinks pointing to outside of archived files (or
invalid) will not be stored. To store such symlinks, "--no-safe-links"
must be specified.

This commit implements "safe links" for v1 of the file format.

6 months agoImpl. "safe links" by default for v0
Stephen Seo [Mon, 21 Oct 2024 07:55:39 +0000 (16:55 +0900)]
Impl. "safe links" by default for v0

By default, links that point to outside of archive (or possibly doesn't
point to anything) will be ignored. Use "--no-safe-links" to preserve
such symlinks.

Note this has only been implemented for v0 of the file format in this
commit, and not yet v1.

6 months agoVersion 1.3, update Changelog.md 1.3
Stephen Seo [Wed, 16 Oct 2024 04:56:37 +0000 (13:56 +0900)]
Version 1.3, update Changelog.md

6 months agoAvoid busy-wait by sleep 1ms on non-blocking io
Stephen Seo [Wed, 16 Oct 2024 04:54:29 +0000 (13:54 +0900)]
Avoid busy-wait by sleep 1ms on non-blocking io

6 months agoVersion 1.2 1.2
Stephen Seo [Fri, 11 Oct 2024 03:34:51 +0000 (12:34 +0900)]
Version 1.2

6 months agoUpdate Changelog.md
Stephen Seo [Thu, 10 Oct 2024 01:55:14 +0000 (10:55 +0900)]
Update Changelog.md

6 months agoHandle SIGINT (Ctrl+C)
Stephen Seo [Thu, 10 Oct 2024 01:54:28 +0000 (10:54 +0900)]
Handle SIGINT (Ctrl+C)

6 months agoUpdate Changelog.md, version 1.1 1.1
Stephen Seo [Tue, 8 Oct 2024 07:05:22 +0000 (16:05 +0900)]
Update Changelog.md, version 1.1

6 months agoUpdate Changelog.md
Stephen Seo [Tue, 8 Oct 2024 06:52:03 +0000 (15:52 +0900)]
Update Changelog.md

6 months agoUpdate Changelog.md
Stephen Seo [Tue, 8 Oct 2024 06:51:05 +0000 (15:51 +0900)]
Update Changelog.md

6 months agoUpdate README.md
Stephen Seo [Tue, 8 Oct 2024 06:49:51 +0000 (15:49 +0900)]
Update README.md

6 months agoFix failing unit tests
Stephen Seo [Tue, 8 Oct 2024 06:47:57 +0000 (15:47 +0900)]
Fix failing unit tests

6 months agoPre-sort files by default, setting to disable
Stephen Seo [Tue, 8 Oct 2024 06:45:25 +0000 (15:45 +0900)]
Pre-sort files by default, setting to disable

6 months agoAdd validation of files/symlinks count from files
Stephen Seo [Tue, 8 Oct 2024 06:31:40 +0000 (15:31 +0900)]
Add validation of files/symlinks count from files

6 months agoUpdate README.md
Stephen Seo [Tue, 8 Oct 2024 06:20:21 +0000 (15:20 +0900)]
Update README.md

6 months agoImpl. pre-sort files by size before put in chunks
Stephen Seo [Tue, 8 Oct 2024 06:12:44 +0000 (15:12 +0900)]
Impl. pre-sort files by size before put in chunks

6 months agoUpdate Changelog.md
Stephen Seo [Tue, 8 Oct 2024 05:47:32 +0000 (14:47 +0900)]
Update Changelog.md

6 months agoHandle SIGPIPE in v1 de/compress, minor fixes
Stephen Seo [Tue, 8 Oct 2024 05:46:56 +0000 (14:46 +0900)]
Handle SIGPIPE in v1 de/compress, minor fixes

6 months agoUpdate README.md
Stephen Seo [Tue, 8 Oct 2024 05:05:20 +0000 (14:05 +0900)]
Update README.md

6 months agoCleanup of example test files
Stephen Seo [Tue, 8 Oct 2024 05:04:36 +0000 (14:04 +0900)]
Cleanup of example test files

6 months agoUpdate README.md
Stephen Seo [Tue, 8 Oct 2024 04:31:26 +0000 (13:31 +0900)]
Update README.md

6 months agoAdd Changelog.md
Stephen Seo [Tue, 8 Oct 2024 04:23:52 +0000 (13:23 +0900)]
Add Changelog.md

6 months agoAdd action/workflow to build/release tags 1.0
Stephen Seo [Tue, 8 Oct 2024 03:56:05 +0000 (12:56 +0900)]
Add action/workflow to build/release tags

6 months agoMerge branch 'issue_18_improve_compression'
Stephen Seo [Tue, 8 Oct 2024 03:42:02 +0000 (12:42 +0900)]
Merge branch 'issue_18_improve_compression'

Resolves https://git.seodisparate.com/stephenseo/SimpleArchiver/issues/18

6 months agoUpdate README.md, usage text
Stephen Seo [Tue, 8 Oct 2024 01:55:24 +0000 (10:55 +0900)]
Update README.md, usage text

6 months agoMinor fix
Stephen Seo [Tue, 8 Oct 2024 01:39:21 +0000 (10:39 +0900)]
Minor fix

6 months agoBuffer size to 32KiB, fixes
Stephen Seo [Mon, 7 Oct 2024 06:16:05 +0000 (15:16 +0900)]
Buffer size to 32KiB, fixes

6 months agoMinor quality-of-life fixes
Stephen Seo [Mon, 7 Oct 2024 05:03:12 +0000 (14:03 +0900)]
Minor quality-of-life fixes

6 months agoFix errors de/compressing chunks
Stephen Seo [Mon, 7 Oct 2024 04:23:44 +0000 (13:23 +0900)]
Fix errors de/compressing chunks

6 months agoImpl. more robust compression
Stephen Seo [Mon, 7 Oct 2024 03:08:38 +0000 (12:08 +0900)]
Impl. more robust compression

6 months agoImpl. more robust decompression
Stephen Seo [Mon, 7 Oct 2024 02:23:10 +0000 (11:23 +0900)]
Impl. more robust decompression

6 months agoclang-format, ensure --no-abs-symlink works in v1
Stephen Seo [Fri, 4 Oct 2024 12:39:13 +0000 (21:39 +0900)]
clang-format, ensure --no-abs-symlink works in v1

6 months agoUpdate README.md
Stephen Seo [Fri, 4 Oct 2024 12:28:29 +0000 (21:28 +0900)]
Update README.md

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