How to see the repository URIs with DNF's repolist subcommand?

#!/usr/bin/env sh
dnf repolist

The aforementioned outputs the undermentioned:

repo id                                                               repo name                                                                             
code                                                                  Visual Studio Code                                                                    
fedora                                                                Fedora 41 - x86_64                                                                    
fedora-cisco-openh264                                                 Fedora 41 openh264 (From Cisco) - x86_64                                              
google-chrome-canary                                                  google-chrome-canary                                                                  
protonvpn-fedora-unstable                                             ProtonVPN Fedora Beta repository                                                      
rpmfusion-free                                                        RPM Fusion for Fedora 41 - Free                                                       
rpmfusion-free-tainted                                                RPM Fusion for Fedora 41 - Free tainted                                               
rpmfusion-free-updates                                                RPM Fusion for Fedora 41 - Free - Updates                                             
rpmfusion-nonfree                                                     RPM Fusion for Fedora 41 - Nonfree                                                    
rpmfusion-nonfree-tainted                                             RPM Fusion for Fedora 41 - Nonfree tainted                                            
rpmfusion-nonfree-updates                                             RPM Fusion for Fedora 41 - Nonfree - Updates                                          
updates                                                               Fedora 41 - x86_64 - Updates

How can I display the URIs too? I used to utilize the undermentioned:

However, -v isn’t a valid flag in dnf5.


I ask for bugs.kde.org/show_bug.cgi?id=496876#c3.

Something similar
dnf --dump-repo-config=* | awk '/===/,/metalink/ {print}' | egrep '^(===|metalink)'
but this is not limited to enabled ones.

dnf --dump-repo-config=* | awk '/===/,/metalink/ {print}' | egrep '^(===|metalink|enabled =)'
:thinking:

1 Like

@Alessio, thanks. Lots.

That was really interesting - I didn’t consider also getting valid INI data at the same time. I’ve used your basis to generate some code to do so, though: [1]

  1. #!/usr/bin/env bash
    dnf --dump-repo-config=* | awk '
        BEGIN { max_key_length = 0 }
        /===/ {
            match($0, /"([^"]+)"/, arr);
            if (arr[1]) {
                repo = arr[1];
                max_key_length = (length("repo") > max_key_length) ? length("repo") : max_key_length;
            }
            next;
        }
        /^enabled =/ {
            match($0, /(enabled = )(.*)/, arr);
            if (arr[2]) {
                enabled = arr[2];
                max_key_length = (length("enabled") > max_key_length) ? length("enabled") : max_key_length;
            }
            next;
        }
        /^metalink/ {
            match($0, /(metalink = )(.*)/, arr);
            if (arr[2]) {
                metalink = arr[2];
                max_key_length = (length("metalink") > max_key_length) ? length("metalink") : max_key_length;
            }
            # Print all the aligned lines after capturing the current block
            printf "%-*s = \"%s\"\n", max_key_length, "repo", repo;
            printf "%-*s = %s\n", max_key_length, "enabled", enabled;
            printf "%-*s = \"%s\"\n", max_key_length, "metalink", metalink;
        }
    '
    
    
  2. repo     = "updates-testing-debuginfo"
    enabled  = 0
    metalink = "https://mirrors.fedoraproject.org/metalink?repo=updates-testing-debug-f41&arch=x86_64"
    

  1. chatgpt.com/share/6758acd6-1660-8006-8dee-f154fc5f2f2b ↩︎