Libraryless. Click here for Pure Java version (11005L/62K).
sclass BackupThinner { settable File dir; settable TimeZone timeZone = defaultTimeZone(); settable long currentTime = now(); // all files in the backup directory settable L<File> allFiles; // all backup files // sorted by date (youngest first) L<File> files; // backup files that can be deleted gettable L<File> deletableFiles; Map<File, Double> ageMap; // age = age in days swappable bool shouldKeep(double age, double lastAge) { ret defaultAgeBasedBackupRetentionStrategy_shouldKeep(age, lastAge); } void scan { if (allFiles == null) allFiles = listFilesNotDirs(dir); deletableFiles = new L; files = new L; ageMap = new Map; for (File f : allFiles) { var bfa = new BackupFileAge().timeZone(timeZone).currentTime(currentTime); if (!bfa.fileName(f.getName()).parse()) continue; continue unless eq(bfa.originalName, "concepts.structure.gz"); ageMap.put(f, bfa.ageInDays()); files.add(f); } sortByMap_inPlace(files, ageMap); double lastAge = -1; for (File f : files) { double age = ageMap.get(f); if (!shouldKeep(age, lastAge)) deletableFiles.add(f); else lastAge = age; } } }
Began life as a copy of #1011269
download show line numbers debug dex old transpilations
Travelled to 1 computer(s): mqqgnosmbjvj
No comments. add comment
Snippet ID: | #1038776 |
Snippet name: | BackupThinner |
Eternal ID of this version: | #1038776/7 |
Text MD5: | 6b16fd355ee79c5b649e2eaa2a01fddc |
Transpilation MD5: | 9909a6b116b81b654ce8d4ed913a0172 |
Author: | stefan |
Category: | javax |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2025-08-30 11:38:50 |
Source code size: | 1317 bytes / 51 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 2607 / 2918 |
Version history: | 6 change(s) |
Referenced in: | [show references] |