[pve-devel] [PATCH proxmox-offline-mirror 5/8] wizard: simplify Proxmox repository url generation

Shannon Sterz s.sterz at proxmox.com
Mon Sep 8 17:20:12 CEST 2025


On Mon Sep 8, 2025 at 3:16 PM CEST, Fabian Grünbichler wrote:
> except for test since Trixie, all repositories follow the same scheme..
>
> Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
> ---
>  src/bin/proxmox-offline-mirror.rs | 51 +++++++++----------------------
>  1 file changed, 15 insertions(+), 36 deletions(-)
>
> diff --git a/src/bin/proxmox-offline-mirror.rs b/src/bin/proxmox-offline-mirror.rs
> index 8198cff..c444e6d 100644
> --- a/src/bin/proxmox-offline-mirror.rs
> +++ b/src/bin/proxmox-offline-mirror.rs
> @@ -356,44 +356,23 @@ fn action_add_mirror(config: &SectionConfigData) -> Result<Vec<MirrorConfig>, Er
>                      read_selection_from_tty("Select repository variant", variants, Some(0))?;
>
>                  // TODO enterprise query for key!
> -                let url = match (release, variant) {
> -                    (Release::Trixie, ProxmoxVariant::Enterprise) => format!(
> -                        "https://enterprise.proxmox.com/debian/{product} trixie {product}-enterprise"
> +                let url = match variant {
> +                    ProxmoxVariant::Enterprise => format!(
> +                        "https://enterprise.proxmox.com/debian/{product} {release} {product}-enterprise"
>                      ),
> -                    (Release::Trixie, ProxmoxVariant::NoSubscription) => format!(
> -                        "http://download.proxmox.com/debian/{product} trixie {product}-no-subscription"
> +                    ProxmoxVariant::NoSubscription => format!(
> +                        "http://download.proxmox.com/debian/{product} {release} {product}-no-subscription"
>                      ),
> -                    (Release::Trixie, ProxmoxVariant::Test) => {
> -                        format!(
> -                            "http://download.proxmox.com/debian/{product} trixie {product}-test"
> -                        )
> -                    }
> -                    (Release::Bookworm, ProxmoxVariant::Enterprise) => format!(
> -                        "https://enterprise.proxmox.com/debian/{product} bookworm {product}-enterprise"
> -                    ),
> -                    (Release::Bookworm, ProxmoxVariant::NoSubscription) => format!(
> -                        "http://download.proxmox.com/debian/{product} bookworm {product}-no-subscription"
> -                    ),
> -                    (Release::Bookworm, ProxmoxVariant::Test) => format!(
> -                        "http://download.proxmox.com/debian/{product} bookworm {product}test"
> -                    ),
> -                    (Release::Bullseye, ProxmoxVariant::Enterprise) => format!(
> -                        "https://enterprise.proxmox.com/debian/{product} bullseye {product}-enterprise"
> -                    ),
> -                    (Release::Bullseye, ProxmoxVariant::NoSubscription) => format!(
> -                        "http://download.proxmox.com/debian/{product} bullseye {product}-no-subscription"
> -                    ),
> -                    (Release::Bullseye, ProxmoxVariant::Test) => format!(
> -                        "http://download.proxmox.com/debian/{product} bullseye {product}test"
> -                    ),
> -                    (Release::Buster, ProxmoxVariant::Enterprise) => format!(
> -                        "https://enterprise.proxmox.com/debian/{product} buster {product}-enterprise"
> -                    ),
> -                    (Release::Buster, ProxmoxVariant::NoSubscription) => format!(
> -                        "http://download.proxmox.com/debian/{product} buster {product}-no-subscription"
> -                    ),
> -                    (Release::Buster, ProxmoxVariant::Test) => {
> -                        format!("http://download.proxmox.com/debian/{product} buster {product}test")
> +                    ProxmoxVariant::Test => {
> +                        if release >= &Release::Trixie {
> +                            format!(
> +                                "http://download.proxmox.com/debian/{product} {release} {product}-test"
> +                            )
> +                        } else {
> +                            format!(
> +                                "http://download.proxmox.com/debian/{product} {release} {product}test"
> +                            )
> +                        }
>                      }
>                  };
>

is there a reason why the `Display` implementation for
`ProxmoxVariant::NoSubscription` uses an underscore? from what i can
tell we mostly seem to use it to derive a suggested mirro id. if we used
a hyphen there instead this could become

                if release < &Release::Trixie && variant == ProxmoxVariant::Test {
                    format!(
                        "http://download.proxmox.com/debian/{product} {release} {product}test"
                    )
                } else {
                    format!(
                        "http://download.proxmox.com/debian/{product} {release} {product}-{variant}"
                    )
                }





More information about the pve-devel mailing list