feat(version): support nvchecker keyfile from user config home

This adds support for global keyfile from the user config home
XDG_CONFIG_HOME which allows to set tokens for GitHub and GitLab for
certain nvchecker configuration.

When ~/.config/nvchecker/keyfile.toml exists, it will automatically be
appended as keyfile of the local .nvchecker.toml file.

Component: pkgctl version check
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
This commit is contained in:
Levente Polyak 2024-01-13 15:27:34 +01:00 committed by Christian Heusel
parent 03d5c928cf
commit 96f39525bf
No known key found for this signature in database
GPG Key ID: C047D4F328B52585
2 changed files with 18 additions and 2 deletions

View File

@ -18,7 +18,13 @@ which this package could possibly be upgraded.
The current working directory is used if no PKGBASE is specified.
See the section on configuration files in **nvchecker**(1) for possible options
Configuration
-------------
To provide GitHub or GitLab tokens to nvchecker, a `keyfile.toml` will be
supplied from `$XDG_CONFIG_HOME`/nvchecker.
See the section on configuration files in linkman:nvchecker[1] for possible options
which can be utilized in .nvchecker.toml.
Options

View File

@ -23,6 +23,9 @@ pkgctl_version_check_usage() {
The current working directory is used if no PKGBASE is specified.
To provide GitHub or GitLab tokens to nvchecker, a keyfile.toml
will be supplied from \${XDG_CONFIG_HOME}/nvchecker.
OPTIONS
-h, --help Show this help text
@ -110,6 +113,8 @@ get_upstream_version() {
local config=.nvchecker.toml
local output errors upstream_version
local output
local opts=()
local keyfile="${XDG_CONFIG_HOME:-${HOME}/.config}/nvchecker/keyfile.toml"
# check nvchecker config file
if ! errors=$(nvchecker_check_config "${config}"); then
@ -117,7 +122,12 @@ get_upstream_version() {
return 1
fi
if ! output=$(nvchecker --file "${config}" --logger json 2>&1 | \
# populate keyfile to nvchecker opts
if [[ -f ${keyfile} ]]; then
opts+=(--keyfile "${keyfile}")
fi
if ! output=$(nvchecker --file "${config}" --logger json "${opts[@]}" 2>&1 | \
jq --raw-output 'select(.level != "debug")'); then
printf "failed to run nvchecker: %s" "${output}"
return 1