nvchecker compatibility
check the release notes for compatibility updates
| command | time per updated package | details |
|---|---|---|
nvrs |
~ 0.03s | API requests included depends on internet speed |
nvrs --cmp |
~ 0.0008s | depends on disk speed |
nvrs --take |
~ 0.001s | depends on disk speed |
aurgithubgitlab(with custom hosts)website(regex)
ALLargument for the--takecommand--no-failflag to prevent exiting on recoverable errors--nukecommand to delete packages from all files--list-sourcescommand to list all available sources
Arch Linux
nvrs is available as a package in the AUR.
you can install it with your preferred AUR helper, example:
paru -S nvrsor manually:
git clone https://aur.archlinux.org/nvrs.git
cd nvrs
makepkg -siCargo
nvrs can be installed via Cargo with:
cargo install nvrs --all-featuresnote that crates installed using cargo install require manual updating with cargo install --force.
Manual
- Download the latest binary from GitHub's release page
- Allow execution
chmod +x nvrs- Move the file to a directory in
$PATH(using/usr/binas an example)
sudo mv nvrs /usr/bin/nvrsnvrs relies on a configuration file. see configuration.
the core commands are:
nvrs- fetches latest versions of defined packagesnvrs --cmp- compares newver with oldver and displays differencesnvrs --take- automatically updates oldver. takes in a comma-separated list of package names (ALLfor all packages)nvrs --nuke- deletes packages from all files. takes in a comma-separated list of names (yes, just like a hitman)- the
--no-failflag - as the name suggests, specifying this will make nvrs not exit on recoverable errors
# download the example configuration file
curl -L 'https://github.com/adamperkowski/nvrs/raw/main/nvrs.toml' -o nvrs.toml
# fetch latest package versions (should return `NONE -> version` for all packages)
nvrs --no-fail
# compare them to latest known versions (should also return `NONE -> version`)
nvrs -c
# update the known versions
nvrs -t ALLnvrs relies on a configuration file (example) containing basic settings, such as oldver, newver & keyfile paths, as well as package entries. supported config paths:
$XDG_CONFIG_HOME/nvrs.toml(~/.config/nvrs.tomlif the variable is not set)./nvrs.toml- custom paths set with
nvrs --config
this configures the behavior of nvrs. see the example config.
available fields:
| name | description | type | required |
|---|---|---|---|
oldver |
path to the oldver file |
string | βοΈ |
newver |
path to the newver file |
string | βοΈ |
keyfile |
path to a keyfile (see keyfile structure) | string | β |
package entries are custom entries in the main config file. they contain values such as:
| name | description | type | required | custom |
|---|---|---|---|---|
source |
see sources | string | βοΈ | β |
| source name | the "target". eg. repo path for github |
string | βοΈ | βοΈ |
host |
domain name the source is hosted on | string | β | β |
prefix |
the prefix used in releases / tags example: v for tags like v0.1.0 |
string | β | β |
use_max_tag |
use max git tag instead of the latest release | bool | β | β |
url |
url to check for source type regex |
string | β | β |
regex |
regex to search url for source type regex |
bool | β | β |
this file contains API keys for various sources. example can be found here.
[keys]
github = "your_secret_github_api_key_that_you_shouldnt_push_to_a_public_nor_a_private_remote_repo_because_there_will_definitely_be_serious_consequences_sooner_or_later_if_you_do_trust_me_just_dont"
gitlab = "remember_to_replace_the_example_values_here_here_with_your_actual_keys_otherwise_it_wont_work_but_dont_push_keyfiles_to_remote_repos""I think that example value is not long enough" - orhun
the nvrs library documentation can be found at docs.rs/nvrs
Copyright (c) 2024 Adam Perkowski
see LICENSE