nvchecker compatibility
check the release notes and configuration docs for compatibility updates and instructions.
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 |
aur
cratesio
github
gitlab
(with custom hosts)website
(regex)
ALL
argument for the--take
command--no-fail
flag to prevent exiting on recoverable errors--nuke
command to delete packages from all files--list-sources
command 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 nvrs
or manually:
git clone https://aur.archlinux.org/nvrs.git
cd nvrs
makepkg -si
Cargo
nvrs can be installed via Cargo with:
cargo install nvrs --all-features
note 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/bin
as an example)
sudo mv nvrs /usr/bin/nvrs
nvrs 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 (ALL
for all packages)nvrs --nuke
- deletes packages from all files. takes in a comma-separated list of names (yes, just like a hitman)- the
--no-fail
flag - 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 ALL
for all available commands, options and flags, see nvrs --help
and the manual page.
nvrs 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.toml
if 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
if you want to contribute to the project, please read the Contributing Guidelines before doing so.
if you find any parts of the code or the documentation unclear, or have any suggestions, feel free to open an issue or a pull request.
Copyright (c) 2024 Adam Perkowski
see LICENSE