From 96f39525bf60a499aa840015159d9040b53be69a Mon Sep 17 00:00:00 2001 From: Levente Polyak Date: Sat, 13 Jan 2024 15:27:34 +0100 Subject: 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 --- doc/man/pkgctl-version-check.1.asciidoc | 8 +++++++- src/lib/version/check.sh | 12 +++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/doc/man/pkgctl-version-check.1.asciidoc b/doc/man/pkgctl-version-check.1.asciidoc index 97d8c47..ed9abdf 100644 --- a/doc/man/pkgctl-version-check.1.asciidoc +++ b/doc/man/pkgctl-version-check.1.asciidoc @@ -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 diff --git a/src/lib/version/check.sh b/src/lib/version/check.sh index c78e364..600a346 100644 --- a/src/lib/version/check.sh +++ b/src/lib/version/check.sh @@ -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 -- cgit v1.2.3-54-g00ecf