Shell Tools

Timeline
Login

Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2026-09-11
12:25
optipng.py: Add --clobber and --backup/--keep command line switches. Currently no-ops. Added a few unit tests verifying expected behavior of these options. Still needs a few additional tests for further cases, especially for --backup combined with --clobber leaf check-in: f59e93cd16 user: thomas tags: standalone_concurrent_optipng
2026-09-07
13:59
optipng.py: Pass the result code from individual optipng calls and return it as result of main(). With this, return codes match the behavior of base optipng check-in: 2a28f3c489 user: thomas tags: standalone_concurrent_optipng
13:01
optipng.py: Implement passing the -strip switch to optipng check-in: 62f8b328c1 user: thomas tags: standalone_concurrent_optipng
2026-09-05
21:54
optipng.py: Minor refactoring. Move -quiet handling from main() into a helper function check-in: f97db20748 user: thomas tags: standalone_concurrent_optipng
21:42
optipng: Implement --force. Refactor logic to always generate an output file, and only throw it away if it is >= the input file and --force is not given. When --force is given, the smallest result image is now always written. check-in: 7a759e3f36 user: thomas tags: standalone_concurrent_optipng
15:37
optipng.py: Implement passing the PNG interlace mode (-i switch with values 0, 1, or 0-1) down to optipng check-in: cfa5808cf4 user: thomas tags: standalone_concurrent_optipng
15:15
optipng.py: Use ArgumentParser's capability action='append_const' to manage passing down selected optipng flags. This simplifies handling these flags by building the argument list in the argument parser, instead of parsing down to a bunch of boolean flags that are used to then build the list of flags again check-in: 050a5896af user: thomas tags: standalone_concurrent_optipng
15:03
optipng.py: Implement passing down optipng switches -nb -nc -np -nx and -nz check-in: 95edca1ced user: thomas tags: standalone_concurrent_optipng
14:53
optipng.py: Add --fix cli switch, passed down to optipng as -fix check-in: da17ccf9f5 user: thomas tags: standalone_concurrent_optipng
14:50
test_optipng.py: Implement test for passing down specific optipng flag switches. It verifies that boolean optipng options are passed down from main to the base optipng calls. check-in: c4102c3ba2 user: thomas tags: standalone_concurrent_optipng
14:16
paperless_leaflet_bot/leaflet_fetcher.py: Update to API v10 / Paperless-ngx 3.0 leaf check-in: f96504b68e user: thomas tags: trunk
13:03
Merge fork check-in: 1688fd9730 user: thomas tags: standalone_concurrent_optipng
12:59
optipng.py: Move output file handling into a dedicated function check-in: 3d88f96b17 user: thomas tags: standalone_concurrent_optipng
12:39
optipng.py: Allow overwriting files when optimizing PNGs in-place. check-in: 53adeb1e3f user: thomas tags: standalone_concurrent_optipng
2026-09-03
21:57
optipng.py: Extend _optimize_single_image() and _run_optipng_single_parameter_set() to pass additional, shared parameters to each optipng task. Use this to implement --preserve to preserve file attributes check-in: 285283f37f user: thomas tags: standalone_concurrent_optipng
16:51
optipng.py: Add -v verbose switch, which currently does nothing check-in: 29f203a636 user: thomas tags: standalone_concurrent_optipng
16:39
optipng.py: Remove the short form -v for --version. Upstream optipng uses -v for verbose output check-in: 75ebe3655b user: thomas tags: standalone_concurrent_optipng
16:35
optipng: Implement unit test cases for --quiet/--silent check-in: e07ee330ee user: thomas tags: standalone_concurrent_optipng
16:26
optipng.py: Implement --quiet and --silent switches that suppress all output, including error messages check-in: d7835b2474 user: thomas tags: standalone_concurrent_optipng
2026-09-02
16:27
Handle already existing output files. Do not overwrite existing files by default check-in: fffa3ab77d user: thomas tags: standalone_concurrent_optipng
15:42
optipng.py: Add --out and --dir switches. Handle missing and failing input files. test_optipng.py: Add some unit tests for validation. check-in: af6331f19d user: thomas tags: standalone_concurrent_optipng
2026-09-01
11:56
Add dyndns/update_dyndns_once.service, that runs update_dyndns.xsh in --oneshot mode check-in: 6038637bf0 user: thomas tags: trunk
11:55
Add a timer running daily at 5AM check-in: b57bab0553 user: thomas tags: trunk
11:52
Move all general purpose systemd timer definitions into a dedicated "timer" directory check-in: eb97d5b3e1 user: thomas tags: trunk
11:34
Remove paperless_leaflet_bot/leaflet_cleanup.py and service file. Paperless workflows now support throwing documents into the trash, so the external script is no longer needed. check-in: 4e064a7d98 user: thomas tags: trunk
11:31
dyndns/update_dyndns.xsh: Add --oneshot flag, that lets the script skip the gateway polling, and only ask once. check-in: 2519e0fcd0 user: thomas tags: trunk
2026-08-31
21:47
optipng.py: Basic logic completed check-in: f18f356f6f user: thomas tags: standalone_concurrent_optipng
20:58
network_webcam.xsh: Add --vflip switch for vertical image flipping check-in: b3f62ccba4 user: thomas tags: trunk
2026-08-30
16:42
WIP optipng wrapper script, extracted from the scanner scripts. Goal is a standalone wrapper for optipng for general purpose use. check-in: c897a16dec user: thomas tags: standalone_concurrent_optipng
16:39
Migration steps for tandoor-recipes check-in: d1cf6be2a0 user: thomas tags: trunk
2026-08-22
14:12
scanner scripts: Move task storage into a custom list subclass, instead of using a separate helper fuction check-in: fc2eb9265c user: thomas tags: trunk
12:36
scan_adf: Minor clean-ups. Remove unused variables check-in: 46c2d74237 user: thomas tags: trunk
2026-08-15
15:10
Fix custom valid until field value not getting set properly. closed check-in: 490b9ea0dc user: thomas tags: fix_leaflet_bot_upload
13:33
Additional cleanups. Removed unused data. Improved POST body formatting check-in: 2f73e6d483 user: thomas tags: fix_leaflet_bot_upload
12:44
Paperless /api/documents/post_document/ now accepts writing custom fields, so remove the polling logic that was broken with API version 10. check-in: 8ad6d28136 user: thomas tags: fix_leaflet_bot_upload
10:36
Properly dump the result json check-in: 60662956c1 user: thomas tags: fix_leaflet_bot_upload
10:26
Add a default branch to _wait_until_processed() check-in: 785f6d2ffa user: thomas tags: fix_leaflet_bot_upload
10:09
leaflet bot: Set maximum service runtime to 15 minutes, in case the task gets stuck somehow check-in: d5107f5a1e user: thomas tags: trunk
2026-08-05
13:27
scan_flatbed: Namespace no longer inherits from NamedTuple check-in: 7aa0b73efa user: thomas tags: trunk
13:10
dyndns: Use Type=exec, which does not hang systemctl. Also print a statement when cancelled check-in: 571ed59e13 user: thomas tags: trunk
13:06
dyndns: Cancel the service using SIGINT, which the script handles gracefully check-in: 0bff249465 user: thomas tags: trunk
12:50
update_dyndns: Recursive main(), continue polling if the script detects only one of two IPs changing. Only ever do one recursive step, since after that, both IPs got updated. check-in: 9251a3b8e7 user: thomas tags: trunk
2026-07-28
21:49
Update README check-in: 8283240e03 user: thomas tags: trunk
2026-07-11
14:10
dyndns/update_dyndns.xsh: Refactored main, putting loops into separate functions. Made retry loop delays configurable check-in: 961539fd28 user: thomas tags: trunk
2026-07-10
10:07
update_dyndns.xsh: Extended error handling when requesting the current IPs from the gateway check-in: 2a676ba207 user: thomas tags: trunk
2026-07-05
12:11
network_webcam.xsh: Configuration via config file check-in: 623bde991e user: thomas tags: trunk
12:01
Make the -hwaccel value configurable closed check-in: e9646a15e9 user: thomas tags: network_webcam_config
11:42
Add Configuration file and preset support to network_webcam.xsh, reusing the code from the scanner scripts. Re-organized the arguments a bit. The camera address is now positional, since it frequently changes and has to be supplied. The video device is now an optional parameter. check-in: e6c29ccb11 user: thomas tags: network_webcam_config
11:29
Minor cleanups: Use newer syntax to avoid typing imports. check-in: a214587954 user: thomas tags: trunk
09:05
Update eject-backup.xsh: Annotations, minor cleanups, and update the user mount path to the new location under /run/media/$USER/. check-in: 1c71bee8cd user: thomas tags: trunk