particle-os-modules/modules/dnf/dnf-repoinfo
fiftydinar fef0f17870
feat: dnf module (#377)
Co-authored-by: xyny <60004820+xynydev@users.noreply.github.com>
Co-authored-by: Gerald Pinder <gmpinder@gmail.com>
Co-authored-by: certifiedfoolio <156134535+cherry-os@users.noreply.github.com>
Co-authored-by: xyny <git@xyny.anonaddy.me>
Co-authored-by: somebody once told me <156134535+certifiedfoolio@users.noreply.github.com>
Co-authored-by: franute <franute@gmail.com>
2025-04-27 14:49:39 +00:00

84 lines
2.3 KiB
Bash
Executable file

#!/bin/bash
# convert the output of dnf repoinfo into json
repo_id="$1"
repo_info=$(dnf repoinfo -q "$repo_id")
echo "["
echo " {"
repo_id_val=$(echo "$repo_info" | grep -oP "^Repo-id *: *\K.*")
if [ -n "$repo_id_val" ]; then
echo " \"id\":\"$repo_id_val\","
fi
repo_name=$(echo "$repo_info" | grep -oP "^Repo-name *: *\K.*")
if [ -n "$repo_name" ]; then
echo " \"name\":\"$repo_name\","
fi
repo_status=$(echo "$repo_info" | grep -oP "^Repo-status *: *\K.*")
if [ -n "$repo_status" ]; then
if [[ "$repo_status" == "enabled" ]]; then
echo " \"is_enabled\":true,"
else
echo " \"is_enabled\":false,"
fi
fi
repo_revision=$(echo "$repo_info" | grep -oP "^Repo-revision *: *\K.*")
if [ -n "$repo_revision" ]; then
echo " \"revision\":\"$repo_revision\","
fi
repo_updated=$(echo "$repo_info" | grep -oP "^Repo-updated *: *\K.*")
if [ -n "$repo_updated" ]; then
echo " \"updated\":\"$repo_updated\","
fi
repo_available_pkgs=$(echo "$repo_info" | grep -oP "^Repo-available-pkgs *: *\K.*")
if [ -n "$repo_available_pkgs" ]; then
echo " \"available-pkgs\":$repo_available_pkgs,"
fi
repo_pkgs=$(echo "$repo_info" | grep -oP "^Repo-pkgs *: *\K.*")
if [ -n "$repo_pkgs" ]; then
echo " \"pkgs\":$repo_pkgs,"
fi
repo_size=$(echo "$repo_info" | grep -oP "^Repo-size *: *\K.*")
if [ -n "$repo_size" ]; then
echo " \"size\":\"$repo_size\","
fi
repo_metalink=$(echo "$repo_info" | grep -oP "^Repo-metalink *: *\K.*")
if [ -n "$repo_metalink" ]; then
echo " \"metalink\":\"$repo_metalink\","
fi
updated=$(echo "$repo_info" | grep -oP "^Updated *: *\K.*")
if [ -n "$updated" ]; then
echo " \"updated\":\"$updated\","
fi
repo_baseurl=$(echo "$repo_info" | grep -oP "^Repo-baseurl *: *\K.*")
if [ -n "$repo_baseurl" ]; then
echo " \"baseurl\":\"$repo_baseurl\","
fi
repo_expire=$(echo "$repo_info" | grep -oP "^Repo-expire *: *\K.*")
if [ -n "$repo_expire" ]; then
echo " \"expire\":\"$repo_expire\","
fi
repo_filename=$(echo "$repo_info" | grep -oP "^Repo-filename *: *\K.*")
if [ -n "$repo_filename" ]; then
echo " \"repo_file_path\":\"$repo_filename\""
fi
if [[ "$(tail -c 2 <<< "$(echo "$repo_info")" | head -c 1)" == "," ]]; then
sed -i '$ s/,$//'
fi
echo " }"
echo "]"