No description
  • C++ 91.8%
  • CMake 6.6%
  • Nix 0.8%
  • Makefile 0.8%
Find a file
2026-01-16 14:19:07 +01:00
data fix: fully ignore symlink 2026-01-16 08:49:03 +01:00
src feat: index only cli 2026-01-15 22:49:57 +01:00
unittests feat: indexation && refactor: don't suppose cwd is to index 2026-01-15 21:46:58 +01:00
.clangd feat: bases of data structures 2025-12-22 15:52:53 +01:00
.envrc chore(shell): will work in C++ 2025-12-16 20:34:44 +01:00
.gitignore feat: reparsing of json, fix: constant instantion format, test: make unittest 2025-12-23 11:58:49 +01:00
archi chore(planning): first idea 2025-12-16 20:31:19 +01:00
CMakeLists.txt feat: indexation && refactor: don't suppose cwd is to index 2026-01-15 21:46:58 +01:00
compile_commands.json feat: reparsing of json, fix: constant instantion format, test: make unittest 2025-12-23 11:58:49 +01:00
makefile feat: database with format and parsing 2025-12-23 23:39:42 +01:00
readme.md docs: readme 2026-01-16 14:19:07 +01:00
shell.nix feat: file data initialisation 2026-01-15 09:02:22 +01:00

Box of Files

Features

Currently, only the indexing (initialisation & update) is supported. When indexing, the last_modified property of files is trusted to not rehash files indexed after this date.

Architecture

The executable is just an interface to the bof_data library (in the data directory). It is separated in 4 classes:

  • InstantiationKey which abstract the path
  • Instantiation which represent an instantiation object (path and SHA)
  • File which represent a file object (content metadata only)
  • Database which hold the database.

The idea behind indexing process (Database::update) is vaguely describe in the archi file. All the remote notion is not implemented.

Build

Note for nix users : there is no package file, but the shell.nix setup every dependencies.

Dependencies

The build chain uses CMake (tested minimum 3.23) with Makefiles output and pkgconfig for dependencie imports. Any C++ compiler supporting C++23 and detected by CMake should be good (tested with g++ 14.3.0).

There are 3 code dependencies :

Build

Just executing make should do the trick (including CMake configuration). The makefile has 3 targets : build, test (running unittests via CTest) and clean.