/* SPDX-License-Identifier: Apache-2.0 */ /** * Copyright 2026 Thorsten Töpper * * Keep track of files across different paths or filesystems with a sqlite db * and identify duplicates. This utility should be used for housekeeping when * spreading data across multiple FS / integrate old disks into newer setups. * * The DB stores SHA512 and SHA256 hashes calculated with the OpenSSL library, * path and filenames and their corresponding stat() FS data. * * @file duplicate_finder.c * * vim:ts=4:sw=4:expandtab */ #include #include "trace_macros.h" #include "options.h" #include "kv_manager.h" #include "directory_scanner.h" /*=========== DEFINES, CONSTANTS AND TYPES ===========*/ /*=========== GLOBAL VARIABLES ===========*/ /*=========== FUNCTIONS ===========*/ int main(int argc, char **argv) { int path_index = 1; if (argc > 1) { path_index = parse_arguments(argc, argv); } /* TODO: as option */ kv_open_storage("/tmp/duplicate_finder.gdbm"); process_directory((path_index == argc) ? argv[path_index] : "."); kv_dump(stdout); kv_close_storage(); return EXIT_SUCCESS; }