Libraryless. Click here for Pure Java version (11000L/62K).
sclass BackupThinner { settable File dir; settable TimeZone timeZone = defaultTimeZone(); settable long currentTime = now(); settable L<File> allFiles; gettable L<File> deletableFiles; L<File> files; 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/6 |
Text MD5: | 1210d0469a8acb8074bcec09b1e584be |
Transpilation MD5: | 188c4e3b3a89a2dd4c00857cd1f6b376 |
Author: | stefan |
Category: | javax |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2025-04-20 19:25:21 |
Source code size: | 1173 bytes / 46 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 52 / 83 |
Version history: | 5 change(s) |
Referenced in: | [show references] |