File indexing completed on 2024-12-08 10:52:34
0001 /* 0002 SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0003 SPDX-FileCopyrightText: 2021 Harald Sitter <sitter@kde.org> 0004 */ 0005 0006 #include <cassert> 0007 #include <chrono> 0008 #include <filesystem> 0009 #include <iostream> 0010 #include <string_view> 0011 0012 using namespace std::chrono_literals; 0013 0014 int main(int argc, char **argv) 0015 { 0016 if (argc != 2) { 0017 std::cerr << "Need cache path as argument\n"; 0018 return 1; 0019 } 0020 0021 const std::filesystem::path cachePath = argv[1]; 0022 if (!std::filesystem::exists(cachePath)) { 0023 std::cerr << "Cache path doesn't exist " << cachePath << "\n"; 0024 return 1; 0025 } 0026 0027 for (const auto &path : std::filesystem::directory_iterator(cachePath)) { 0028 if (path.path().extension() != ".ini") { 0029 continue; 0030 } 0031 try { 0032 const auto lastModified = path.last_write_time(); 0033 const auto now = decltype(lastModified)::clock().now(); 0034 const auto age = now - lastModified; 0035 // Plenty of time so we won't take away the file from underneath drkonqi. 0036 if (age > 3h) { 0037 std::filesystem::remove(path); 0038 } 0039 } catch (const std::filesystem::filesystem_error &error) { 0040 std::cerr << error.what(); 0041 continue; 0042 } 0043 } 0044 }