| // Copyright 2018 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "arc/apk-cache/cache_cleaner.h" |
| |
| #include <base/files/file_path.h> |
| #include <base/logging.h> |
| #include <brillo/flag_helper.h> |
| |
| namespace { |
| |
| constexpr char kApkCacheDir[] = "/mnt/stateful_partition/unencrypted/apkcache"; |
| constexpr char kHelpText[] = |
| "Performs cleaning of the APK cache directory: " |
| "/mnt/stateful_partition/unencrypted/apkcache/\n" |
| "It removes:\n" |
| " - all the files in the cache root;\n" |
| " - all the package directories that:\n" |
| " 1. have not been used within last 30 days;\n" |
| " 2. contain unexpected files. Any file except APK, main and patch OBB\n" |
| " and JSON with package attributes is considered unexpected;\n" |
| " 3. contain directories;\n" |
| " 4. contain no or more than one APK file, no attributes JSON file,\n" |
| " more then one main OBB file, more then one patch OBB file.\n" |
| "Returns 0 all the intended files and directories were successfully\n" |
| "deleted."; |
| |
| } // namespace |
| |
| int main(int argc, char** argv) { |
| brillo::FlagHelper::Init(argc, argv, kHelpText); |
| |
| if (!apk_cache::Clean(base::FilePath(kApkCacheDir))) { |
| LOG(ERROR) << "APK Cache cleaner experienced problem while cleaning."; |
| return 1; |
| } |
| |
| LOG(INFO) << "APK Cache cleaner succeeded."; |
| return 0; |
| } |