- Add `find_last_entry` function to efficiently determine the highest used ID in the lookup table, improving performance for non-incremental databases. - Implement deleted record handling using a special marker, allowing for efficient tracking and synchronization of deleted entries. - Enhance `get_last_index` to handle both incremental and non-incremental modes correctly, providing a unified interface for retrieving the last index. - Modify `push_updates` to correctly handle initial syncs and account for deleted records during synchronization. - Update `sync_updates` to correctly handle empty update data, indicating a record deletion. - Add comprehensive tests for database synchronization, including edge cases like empty updates, invalid data, and various scenarios with deleted records.
herolib
Is an opinionated library as used by threefold mainly to automate cloud environments, its still very much work in progress and we welcome any contribution.
Please check also our cookbook which might give some ideas how to use it.
Get started with hero
curl -sL https://raw.githubusercontent.com/freeflowuniverse/herolib/development/scripts/install_hero.sh | bash
Get started with herolib
the following script will install vlang and herolib (report bugs please)
curl https://raw.githubusercontent.com/freeflowuniverse/herolib/development/scripts/installer.sh > /tmp/install.sh
bash /tmp/install.sh
optional requirements
- ssh key loaded for access to github
alternative with manual git checkout & v install
requirements
- v installed
- ssh key loaded for access to github
mkdir -p ~/code/github/freeflowuniverse
cd ~/code/github/freeflowuniverse
git clone git@github.com:freeflowuniverse/herolib.git
cd herolib
# checkout a branch with most recent changes
# git checkout development
bash install.sh
Install Hero
hero is our "hero" tool to execute heroscript, deal with git, ...
hero will be installed in
- /usr/local/bin for linux
- ~/hero/bin for osx
curl https://raw.githubusercontent.com/freeflowuniverse/herolib/development/scripts/install_hero.sh > /tmp/hero_install.sh
bash /tmp/hero_install.sh
#to debug
bash -x /tmp/hero_install.sh
#maybe you want to copy to your system bin dir
cp ~/hero/bin/hero /usr/local/bin
#to use hero make sure you restart your shell or you do (if osx)
source ~/.zprofile
#check how to use, can also do on each of the subcommands
hero -help
requirements
- ssh key loaded for access to github
generating docs yourself
#cd in this directory
cd ~/code/github/freeflowuniverse/herolib
bash doc.sh
build hero
- linux as done by github actions, nothing to do
- osx: ``