From a79b3c3f4f5b1fbb787bf256787c936a30cca463 Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Feb 01 2023 17:07:01 +0000 Subject: Refactor to eliminate redundant distro conf files and ease of use The various `*.conf` are all identical except for `centos-legacy.conf` which was not configured to use caching yet. Collapse them into a single `dnf.conf`, and also allow users to specify only the distro name (in which case the repos are assumed to be at `/usr/share/rpmdistro-repoquery/distros`) or a full path. Also add a usage guide if the script is called without at least 3 arguments. Tests (added `echo` to output the command): ``` rpmdistro-repoquery on  main [✘»!] ❯ ./rpmdistro-repoquery fedora 37 foo bar dnf --config=/usr/share/rpmdistro-repoquery/dnf.conf --setopt=reposdir=/usr/share/rpmdistro-repoquery/distros/fedora --releasever=37 --nogpgcheck repoquery foo bar rpmdistro-repoquery on  main [✘»!] ❯ ./rpmdistro-repoquery ./distros/fedora/ 37 foo bar dnf --config=./distros/dnf.conf --setopt=reposdir=./distros/fedora --releasever=37 --nogpgcheck repoquery foo bar ``` Signed-off-by: Michel Alexandre Salim --- diff --git a/README.md b/README.md index 4265a9a..229869b 100644 --- a/README.md +++ b/README.md @@ -26,17 +26,19 @@ Both are available in the following distributions: * CentOS (since 7.6) with EPEL installed and enabled ```bash -$ ./rpmdistro-repoquery ./distros/.conf [ ...] +$ ./rpmdistro-repoquery ./distros/ [ ...] ``` +If the `` argument is specified without a path, `rpmdistro-repoquery` will look in `/usr/share/rpmdistro-repoquery`. + ## openSUSE specific notes For a special case, openSUSE Tumbleweed would work as the following with repoquery: ```bash -$ ./rpmdistro-repoquery ./distros/opensuse-tumbleweed.conf 0 [ ...] +$ ./rpmdistro-repoquery ./distros/opensuse-tumbleweed 0 [ ...] ``` @@ -46,7 +48,7 @@ However, if you want to query various released snapshots for comparisons, you ca ```bash -$ ./rpmdistro-repoquery ./distros/opensuse-tumbleweed-snapshot.conf 20190423 [ ...] +$ ./rpmdistro-repoquery ./distros/opensuse-tumbleweed-snapshot 20190423 [ ...] ``` diff --git a/distros/centos-legacy.conf b/distros/centos-legacy.conf deleted file mode 100644 index aa8f51f..0000000 --- a/distros/centos-legacy.conf +++ /dev/null @@ -1,12 +0,0 @@ -[main] -keepcache=1 -debuglevel=2 -reposdir=/dev/null -logdir=/tmp/log/dnf -retries=20 -obsoletes=1 -gpgcheck=0 -best=1 -install_weak_deps=0 -metadata_expire=0 -mdpolicy=group:primary diff --git a/distros/centos-stream-legacy.conf b/distros/centos-stream-legacy.conf deleted file mode 100644 index 408f022..0000000 --- a/distros/centos-stream-legacy.conf +++ /dev/null @@ -1,12 +0,0 @@ -[main] -keepcache=1 -debuglevel=2 -reposdir=/dev/null -logdir=/tmp/log/dnf -retries=20 -obsoletes=1 -gpgcheck=0 -best=1 -install_weak_deps=0 -metadata_expire=6h -mdpolicy=group:primary diff --git a/distros/centos-stream.conf b/distros/centos-stream.conf deleted file mode 100644 index 408f022..0000000 --- a/distros/centos-stream.conf +++ /dev/null @@ -1,12 +0,0 @@ -[main] -keepcache=1 -debuglevel=2 -reposdir=/dev/null -logdir=/tmp/log/dnf -retries=20 -obsoletes=1 -gpgcheck=0 -best=1 -install_weak_deps=0 -metadata_expire=6h -mdpolicy=group:primary diff --git a/distros/centos.conf b/distros/centos.conf deleted file mode 100644 index 408f022..0000000 --- a/distros/centos.conf +++ /dev/null @@ -1,12 +0,0 @@ -[main] -keepcache=1 -debuglevel=2 -reposdir=/dev/null -logdir=/tmp/log/dnf -retries=20 -obsoletes=1 -gpgcheck=0 -best=1 -install_weak_deps=0 -metadata_expire=6h -mdpolicy=group:primary diff --git a/distros/dnf.conf b/distros/dnf.conf new file mode 100644 index 0000000..408f022 --- /dev/null +++ b/distros/dnf.conf @@ -0,0 +1,12 @@ +[main] +keepcache=1 +debuglevel=2 +reposdir=/dev/null +logdir=/tmp/log/dnf +retries=20 +obsoletes=1 +gpgcheck=0 +best=1 +install_weak_deps=0 +metadata_expire=6h +mdpolicy=group:primary diff --git a/distros/fedora.conf b/distros/fedora.conf deleted file mode 100644 index 408f022..0000000 --- a/distros/fedora.conf +++ /dev/null @@ -1,12 +0,0 @@ -[main] -keepcache=1 -debuglevel=2 -reposdir=/dev/null -logdir=/tmp/log/dnf -retries=20 -obsoletes=1 -gpgcheck=0 -best=1 -install_weak_deps=0 -metadata_expire=6h -mdpolicy=group:primary diff --git a/distros/mageia.conf b/distros/mageia.conf deleted file mode 100644 index 408f022..0000000 --- a/distros/mageia.conf +++ /dev/null @@ -1,12 +0,0 @@ -[main] -keepcache=1 -debuglevel=2 -reposdir=/dev/null -logdir=/tmp/log/dnf -retries=20 -obsoletes=1 -gpgcheck=0 -best=1 -install_weak_deps=0 -metadata_expire=6h -mdpolicy=group:primary diff --git a/distros/opensuse-leap-legacy.conf b/distros/opensuse-leap-legacy.conf deleted file mode 100644 index 408f022..0000000 --- a/distros/opensuse-leap-legacy.conf +++ /dev/null @@ -1,12 +0,0 @@ -[main] -keepcache=1 -debuglevel=2 -reposdir=/dev/null -logdir=/tmp/log/dnf -retries=20 -obsoletes=1 -gpgcheck=0 -best=1 -install_weak_deps=0 -metadata_expire=6h -mdpolicy=group:primary diff --git a/distros/opensuse-leap.conf b/distros/opensuse-leap.conf deleted file mode 100644 index 408f022..0000000 --- a/distros/opensuse-leap.conf +++ /dev/null @@ -1,12 +0,0 @@ -[main] -keepcache=1 -debuglevel=2 -reposdir=/dev/null -logdir=/tmp/log/dnf -retries=20 -obsoletes=1 -gpgcheck=0 -best=1 -install_weak_deps=0 -metadata_expire=6h -mdpolicy=group:primary diff --git a/distros/opensuse-leap15-legacy.conf b/distros/opensuse-leap15-legacy.conf deleted file mode 100644 index 408f022..0000000 --- a/distros/opensuse-leap15-legacy.conf +++ /dev/null @@ -1,12 +0,0 @@ -[main] -keepcache=1 -debuglevel=2 -reposdir=/dev/null -logdir=/tmp/log/dnf -retries=20 -obsoletes=1 -gpgcheck=0 -best=1 -install_weak_deps=0 -metadata_expire=6h -mdpolicy=group:primary diff --git a/distros/opensuse-tumbleweed-snapshot.conf b/distros/opensuse-tumbleweed-snapshot.conf deleted file mode 100644 index 408f022..0000000 --- a/distros/opensuse-tumbleweed-snapshot.conf +++ /dev/null @@ -1,12 +0,0 @@ -[main] -keepcache=1 -debuglevel=2 -reposdir=/dev/null -logdir=/tmp/log/dnf -retries=20 -obsoletes=1 -gpgcheck=0 -best=1 -install_weak_deps=0 -metadata_expire=6h -mdpolicy=group:primary diff --git a/distros/opensuse-tumbleweed.conf b/distros/opensuse-tumbleweed.conf deleted file mode 100644 index 408f022..0000000 --- a/distros/opensuse-tumbleweed.conf +++ /dev/null @@ -1,12 +0,0 @@ -[main] -keepcache=1 -debuglevel=2 -reposdir=/dev/null -logdir=/tmp/log/dnf -retries=20 -obsoletes=1 -gpgcheck=0 -best=1 -install_weak_deps=0 -metadata_expire=6h -mdpolicy=group:primary diff --git a/distros/rhel-ubi.conf b/distros/rhel-ubi.conf deleted file mode 100644 index 408f022..0000000 --- a/distros/rhel-ubi.conf +++ /dev/null @@ -1,12 +0,0 @@ -[main] -keepcache=1 -debuglevel=2 -reposdir=/dev/null -logdir=/tmp/log/dnf -retries=20 -obsoletes=1 -gpgcheck=0 -best=1 -install_weak_deps=0 -metadata_expire=6h -mdpolicy=group:primary diff --git a/distros/sle-bci.conf b/distros/sle-bci.conf deleted file mode 100644 index 408f022..0000000 --- a/distros/sle-bci.conf +++ /dev/null @@ -1,12 +0,0 @@ -[main] -keepcache=1 -debuglevel=2 -reposdir=/dev/null -logdir=/tmp/log/dnf -retries=20 -obsoletes=1 -gpgcheck=0 -best=1 -install_weak_deps=0 -metadata_expire=6h -mdpolicy=group:primary diff --git a/rpmdistro-repoquery b/rpmdistro-repoquery index 850bb7c..7514711 100755 --- a/rpmdistro-repoquery +++ b/rpmdistro-repoquery @@ -5,21 +5,36 @@ # License: MIT # See LICENSE for license information -config=$1 +if (( $# < 3 )); then + echo "Usage: $0 [ ...] " + exit 1 +fi +repos=$1 releasever=$2 module_platform="" -reposdir=${config%%.*} +repos_loc=$(dirname $1) +# if config is a path to an directory, use it +# otherwise use the system installation +if [ -d "${repos}" ]; then + repos_loc=$(dirname $1) + repos=$(basename $1) +elif [[ "${repos}" =~ "/" ]]; then + echo "ERROR: specified repos path does not exist" + exit 1 +else + repos_loc=/usr/share/rpmdistro-repoquery/distros +fi -if [[ "$1" =~ "centos" ]]; then +if [[ "${repos}" =~ "centos" ]]; then module_platform="--setopt=module_platform_id=platform:el${2}" fi -if [[ "$1" =~ "mageia" ]]; then +if [[ "${repos}" =~ "mageia" ]]; then DNF_VAR_distarch=$(rpm --eval "%{_target_cpu}") export DNF_VAR_distarch fi -if [[ "$1" =~ "sle-bci" ]]; then +if [[ "${repos}" =~ "sle-bci" ]]; then arr=(${releasever//./ }) if [ "${#arr[@]}" -gt "1" ]; then DNF_VAR_releaseversp="${arr[0]}-SP${arr[1]}" @@ -29,4 +44,4 @@ if [[ "$1" =~ "sle-bci" ]]; then export DNF_VAR_releaseversp fi -dnf --config=${config} --setopt=reposdir=${reposdir} --releasever=${releasever} ${module_platform} --nogpgcheck repoquery "${@:3}" +dnf --config=${repos_loc}/dnf.conf --setopt=reposdir=${repos_loc}/${repos} --releasever=${releasever} ${module_platform} --nogpgcheck repoquery "${@:3}"