snegov
fe48010fc9
Add comprehensive tests for rsync output parsing
...
Implements TestParseRsyncOutput class with 17 tests covering all code
paths in _parse_rsync_output() function. Tests cover deletions, file/
directory/symlink creation, rewrites, metadata updates (permissions,
ownership, timestamps), and error handling for invalid input.
2026-02-04 19:36:24 -08:00
snegov
ee1df4cb21
Update tests
2026-02-04 19:31:29 -08:00
snegov
5dc9235992
Fix potential NameError in copy_file exception handler
...
Initialize file descriptors to None before opening to prevent
UnboundLocalError in the finally block if file opening fails.
Changes:
- Initialize fin = None and fout = None at function start
- Check if descriptors are not None before closing
- Remove UnboundLocalError from exception handling (no longer needed)
This improves code quality by eliminating the need to catch an error
that indicates a logic bug. The existing tests verify correct behavior.
Fixes #6
2026-02-03 22:20:52 -08:00
snegov
32ce113608
Migrate to pyproject.toml with setuptools_scm
...
Replace custom version management with setuptools_scm to eliminate
source file modifications during installation. Version is now derived
from git tags at build time without writing to tracked files.
Changes:
- Add pyproject.toml with full project metadata
- Simplify setup.py to minimal backwards-compatible shim
- Remove curateipsum/_version.py from version control
- Add _version.py to .gitignore (auto-generated at build time)
- Use PEP 440 compliant version strings
Fixes #18
2026-02-03 21:27:49 -08:00
snegov
6fd6051642
Merge pull request #4 from snegov/claude/fix-github-actions-python-versions-011CUyaqGCtZoDZVxANHBu2n
...
Fix GitHub Actions Python version testing
2025-11-09 20:55:42 -08:00
snegov
6d6038b027
Remove backup markers from previous backups
2023-05-07 22:00:05 -07:00
snegov
5746a9bc82
Update github actions
2023-05-07 15:33:45 -07:00
snegov
45c2480778
Fix spent time calculation
2023-05-06 23:20:21 -07:00
snegov
62fcfe5881
Add running backup lock and marker of finished backup
2023-05-06 23:06:15 -07:00
snegov
775234a433
Fix incorrect logging
2022-08-28 19:42:00 +04:00
snegov
ae95856a58
Fix symlinks issue in nest_hardlink function
2021-11-16 00:00:19 +03:00
snegov
2631b78d4d
Handle socket files
2021-11-15 23:12:51 +03:00
snegov
04692be42d
Minor fix in printing version info
2021-11-15 10:28:48 +03:00
snegov
e7774a5e5a
Create run_tests.yml
2021-11-15 10:28:10 +03:00
snegov
9cf99f78b4
Add version support
2021-11-15 01:09:11 +03:00
snegov
a927f3e2d3
Minor fixes
2021-11-13 07:57:11 +03:00
snegov
84546243cb
Add setup.py
2021-11-13 07:39:23 +03:00
snegov
990faf9a43
Add license
2021-11-12 20:50:32 +03:00
snegov
0c30501b9c
Update debug logging
2021-11-12 11:33:53 +03:00
snegov
1cc5271c29
Add lock for backups directory
2021-11-12 11:30:11 +03:00
snegov
c64955362a
Add backups cleanup
2021-11-12 10:38:28 +03:00
snegov
d521ef3c89
Do not create backup if no changes were found
2021-11-09 22:51:49 +03:00
snegov
dae1398f49
Do not create _delta dir on first run
2021-11-09 22:50:38 +03:00
snegov
7395268e97
Add processing of changed files
2021-11-09 00:43:18 +03:00
snegov
1ed1032f42
Add nested dir hardlink test
2021-11-02 23:45:11 +03:00
snegov
2dec011ca9
Fix setting symlink attributes in linux
2021-11-02 22:35:23 +03:00
snegov
7daa8d74b3
Add --external-hardlink parameter
2021-10-24 21:39:36 +03:00
snegov
f01d24f1bd
Fix copying symlinks in Linux
2021-10-23 21:07:14 +03:00
snegov
1b6badf375
Check for rsync before using --external-rsync option
2021-10-23 00:36:39 +03:00
snegov
da228dfb99
Code style
2021-10-23 00:22:04 +03:00
snegov
05ecd09f57
Rename copy_file function
2021-10-22 17:30:45 +03:00
snegov
14552db4c8
Add --external-rsync option
2021-08-13 17:06:56 +03:00
snegov
eaf2b3c0ea
Fix setting directories' mtime in rsync
2021-06-22 07:36:50 +03:00
snegov
036d241585
Fix setting directory mtime in hardlink_dir
2021-06-22 06:56:26 +03:00
snegov
5e042a73c1
Refactoring
2021-06-21 10:25:13 +03:00
snegov
874f2de9ff
Enable rsync in initiate_backup
2021-06-21 10:24:53 +03:00
snegov
3620c5c137
Add spent time info
2021-06-21 10:22:37 +03:00
snegov
bddf311d99
Remove created backup if fail
2021-06-21 10:21:14 +03:00
snegov
126ae85388
Add dry-run option
2021-06-21 08:27:18 +03:00
snegov
27b781a534
Improve _hardlink_dir_ext
2021-06-20 19:40:04 +03:00
snegov
21b854e92d
Fix setting mtime for directories in recursive_hardlinking
2021-06-20 19:15:51 +03:00
snegov
862c20ed24
Add rsync support
2021-06-20 18:40:03 +03:00
snegov
17826c6978
Update hardlink tests
2021-06-16 19:42:32 +03:00
snegov
11c8197dba
Add tests for fs.hardlink_dir()
2021-06-15 23:05:09 +03:00
snegov
170b73834b
Add hardlinking with cp -al
2021-06-10 22:19:26 +03:00
snegov
a867dadb75
Unfinished custom rsync
2021-06-10 19:33:08 +03:00
snegov
4d156c8867
Rework hardlink_dir, create initiate_backup
2021-06-10 19:16:23 +03:00
snegov
ce32dd7317
Create per-module loggers
2021-05-28 00:41:32 +03:00
snegov
d67550cb38
Add rsync func, logging and cli parser
2021-05-27 23:10:55 +03:00
snegov
50d2168b15
hardlink symlinks instead of recreating them
2019-02-11 10:48:38 +03:00
snegov
3c15dd0373
add symlink support to recursive hardlink
2019-01-16 23:02:35 +03:00
snegov
a1e4f00a3b
add .idea to .gitignore
2019-01-16 22:32:20 +03:00
snegov
235d54fec9
fix: exit on incorrect agruments amount
2019-01-15 22:44:52 +03:00
snegov
3c8c6953f2
add recursive hardlink
2019-01-10 22:58:40 +03:00
snegov
8590ad6a93
Initial commit
2019-01-10 22:46:08 +03:00