Commit Graph

51 Commits

Author SHA1 Message Date
Dan Church fd8793787b
Use perl-squasher project to create all-in-one script 2023-07-24 15:54:42 -05:00
Dan Church ed9e369069
CI: Fix unused variables 2023-07-24 14:07:19 -05:00
Dan Church 2d06e1bd1b
CI: Add test for mixed readonly/read-write files 2023-07-20 17:36:42 -05:00
Dan Church 8fdf3069ba
Fix issue where mixed readonly/read-write dirs didn't hard link 2023-07-20 17:36:02 -05:00
Dan Church 76da187807
CI: Improve method of capturing output 2023-07-20 15:37:17 -05:00
Dan Church d13f8ff83c
CI: Add underscores to long number (PBP) 2023-07-20 15:29:45 -05:00
Dan Church a8db0b17fe
CI: Close file handles ASAP 2023-07-20 15:11:25 -05:00
Dan Church e0c91b4647
Fix overly-complex 'map' (PBP) 2023-07-20 15:00:46 -05:00
Dan Church 7d389377a1
CI: Fix unlabelled test 2023-07-20 14:30:23 -05:00
Dan Church 3e96b9bc19
Use croak/carp instead of die/warn (PBP) 2023-07-20 14:30:05 -05:00
Dan Church 4e2e94881b
Use non-interpolating strings where possible 2023-07-20 14:27:34 -05:00
Dan Church 2987e063bd
Fix '!' inside 'unless' (PBP) 2023-07-20 14:26:37 -05:00
Dan Church d6be215a06
Fix join()ed readline (PBP)
Use $/ to slurp the whole handle instead of splitting and joining.
2023-07-20 14:00:46 -05:00
Dan Church 9115c6bdca
CI: Fix TestFunctions
- Use 'use parent' instead of '@ISA'
- Add Perl::Critic leniency
2023-07-20 13:56:52 -05:00
Dan Church 971b76ab37
CI: Move to plan-less tests 2023-07-20 13:44:37 -05:00
Dan Church f3db5cf5ee
CI: Start all tests with bangline
Perl::Critic will think they're modules otherwise.
2023-07-20 13:44:02 -05:00
Dan Church 62f2503cb0
Remove vim modelines
That's what .editorconfig is for.
2023-07-20 13:39:42 -05:00
Dan Church 98c2c04263
Remove postfix if/for (PBP) 2023-07-20 13:05:12 -05:00
Dan Church 15c466e581
Refactor FileHash to expect named arguments 2023-07-20 13:04:52 -05:00
Dan Church 31fe372e09
Fix implicit return (PBP) 2023-07-20 12:37:27 -05:00
Dan Church 7dbbb5422a
Unpack @_ first (PBP) 2023-07-20 12:37:07 -05:00
Dan Church 907a7113a8
Remove Perl 4 sigils (PBP) 2023-07-20 12:41:07 -05:00
Dan Church 02f97c2a90
Refactor 'more_linked'
- Make method static.
- Don't call dirname() in sort block. Relegate this to *::File.
  This carries with it a slight performance boost; calculate dirname of
  file only once upon instantiation, instead of (N log N) * 2 times.
- Move determination of read-only entries higher.
  This carries with it a slight performance boost as well, no longer
  redundantly testing directory write-ability N log N times (reduced to
  N times), and no longer requires memory to keep track of warnings
  issued.
2023-07-20 15:09:58 -05:00
Dan Church 5c6f506ed9
Refactor 'oldest_mtime' to be static 2023-07-20 12:48:07 -05:00
Dan Church e5c25ef772
Replace unnecessary 'use' with 'require' 2023-07-20 12:44:31 -05:00
Dan Church a26764fd2f
Fix squasher stripping repeated newlines in ignored sections 2023-06-29 13:28:03 -05:00
Dan Church 4d4edd5e9d
Move library code to lib/
Fixes accidental inclusion of test instrumentation into the all-in-one
script.
2023-06-29 13:01:29 -05:00
Dan Church 9dc3e4578c
Re-write squasher
Add ability to skip over sections (ignore) vs. completely remove them
(remove).
2023-06-29 12:57:15 -05:00
Dan Church 1582920286
CI: Don't use FindBin to set test library path 2023-06-23 13:39:13 -05:00
Dan Church 22a7b86113
CI: Replace shell script tests with TAP harness
During all this I uncovered a bug in how Archive::Tar handles sparse
files stored in tarballs; the library reports the file as having no
contents and a size of 0. As a result, in the freed-bytes-commas test,
the tarball extraction has been replaced by on-the-fly file creation.
2023-01-29 15:39:25 -06:00
Dan Church 5da826e664
CI: Add gitlab-ci.yml 2022-11-16 13:38:30 -06:00
Dan Church 99207ed0fc
Add editorconfig 2022-11-16 13:00:51 -06:00
Dan Church 46be55d5ff
Add README 2022-11-16 12:48:06 -06:00
Dan Church b1b4e18e05
Break out packages into separate files 2022-11-16 11:33:08 -06:00
Dan Church f04cbac723
Add LICENSE 2022-11-16 11:16:31 -06:00
Dan Church 93f0245d6b
+1 test 2022-09-13 11:50:51 -05:00
Dan Church 8059dc4455
Add thousands separator commas to output 2022-09-13 11:50:10 -05:00
Dan Church 93561ca90a
Use POD to generate help messages
Also, exit instead of continuing when an unrecognized option flag is
seen.
2022-08-28 14:22:18 -05:00
Dan Church 87ea1d8351
Update license block 2022-07-18 17:20:50 -05:00
Dan Church c750b11c7e
Update test
Make sure to print when a control character is present. If it doesn't,
it leads to confusion when bash reports two apparently-equal strings
don't actually match due to the presence of a non-printing character.
2020-12-14 10:19:28 -06:00
Dan Church 5454fe681f
Update options processing
- Make it more obvious in the code what the options do.
- Omit output of progress bar unless -v flag is present.
2020-12-14 10:10:39 -06:00
Dan Church 89b64b1ca1
Exit early if no linkable files are found
Fixes a warning.
2020-11-24 11:09:26 -06:00
Dan Church 047df6c97b
Limit "Skipped" output to only summary 2020-11-18 14:07:16 -06:00
Dan Church 967be362dc
Pre-filter based on file size
Only generate hashes for files that have a size duplicate.
2020-11-17 13:30:35 -06:00
Dan Church 58740f34c5
Add progress bar 2020-11-09 16:35:20 -06:00
Dan Church c77fc7a205
Update script
Follows a more logical process of deciding what to do, then doing it.
2018-01-21 15:48:49 -06:00
Dan Church 7d19ccd876
Add test 2018-01-21 15:01:40 -06:00
Dan Church 79e3eca2cb
Re-write script
Breaking changes:
* Remove support for symlink generation.

Bugs fixed:
* SHA-1 hash collisions no longer corrupt yer data.

Internal changes:
* Rework into a helper package
2018-01-21 14:57:44 -06:00
Dan Church c6beadda5f
Break out changelog into separate file 2018-01-21 12:30:41 -06:00
Dan Church a10996e70f
Clean up script 2018-01-21 12:30:35 -06:00