From d592ff0944dd627dd6440e553b7b42945eef66f2 Mon Sep 17 00:00:00 2001 From: Gerald Pinder Date: Fri, 2 May 2025 09:40:16 -0400 Subject: [PATCH] chore: Add list size checks --- modules/dnf/dnf_interface.nu | 60 ++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/modules/dnf/dnf_interface.nu b/modules/dnf/dnf_interface.nu index 6c98a67..0dafbd8 100644 --- a/modules/dnf/dnf_interface.nu +++ b/modules/dnf/dnf_interface.nu @@ -6,6 +6,16 @@ export def "dnf install" [ ]: nothing -> nothing { let dnf = dnf version + if ($packages | is-empty) { + return (error make { + msg: 'At least one package is required' + label: { + text: 'Packages' + span: (metadata $packages).span + } + }) + } + try { (^$dnf.path -y @@ -30,6 +40,16 @@ export def "dnf remove" [ ]: nothing -> nothing { let dnf = dnf version + if ($packages | is-empty) { + return (error make { + msg: 'At least one package is required' + label: { + text: 'Packages' + span: (metadata $packages).span + } + }) + } + mut args = [] if not $opts.auto-remove { @@ -81,6 +101,16 @@ export def "dnf config-manager setopt" [ check_dnf_plugins let dnf = dnf version + if ($opts | is-empty) { + return (error make { + msg: 'At least one option is required' + label: { + text: 'Options' + span: (metadata $opts).span + } + }) + } + try { match $dnf.command { "dnf4" => { @@ -156,6 +186,16 @@ export def "dnf distro-sync" [ ]: nothing -> nothing { let dnf = dnf version + if ($packages | is-empty) { + return (error make { + msg: 'At least one package is required' + label: { + text: 'Packages' + span: (metadata $packages).span + } + }) + } + try { (^$dnf.path -y @@ -176,6 +216,16 @@ export def "dnf group install" [ ]: nothing -> nothing { let dnf = dnf version + if ($packages | is-empty) { + return (error make { + msg: 'At least one package is required' + label: { + text: 'Packages' + span: (metadata $packages).span + } + }) + } + mut args = $opts | install_args if $opts.with-optional { @@ -201,6 +251,16 @@ export def "dnf group remove" [ ]: nothing -> nothing { let dnf = dnf version + if ($packages | is-empty) { + return (error make { + msg: 'At least one package is required' + label: { + text: 'Packages' + span: (metadata $packages).span + } + }) + } + try { (^$dnf.path -y group remove ...($packages)) } catch {|e|