Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package perl-MooseX-App for openSUSE:Factory 
checked in at 2024-08-14 14:16:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-MooseX-App (Old)
 and      /work/SRC/openSUSE:Factory/.perl-MooseX-App.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-MooseX-App"

Wed Aug 14 14:16:10 2024 rev:8 rq:1193826 version:1.430.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-MooseX-App/perl-MooseX-App.changes  
2024-03-09 20:56:27.862497879 +0100
+++ 
/work/SRC/openSUSE:Factory/.perl-MooseX-App.new.7232/perl-MooseX-App.changes    
    2024-08-14 14:16:54.637705181 +0200
@@ -1,0 +2,7 @@
+Fri Aug  9 18:26:30 UTC 2024 - Frank Schreiner <fschrei...@suse.com>
+
+- Add 0001_fix_bashcompletion_with_subcommands.patch
+  * Fixes: (#72) https://github.com/maros/MooseX-App/issues/72 
+  * UPSTREAM PR: https://github.com/maros/MooseX-App/pull/73
+
+-------------------------------------------------------------------

New:
----
  0001_fix_bashcompletion_with_subcommands.patch

BETA DEBUG BEGIN:
  New:
- Add 0001_fix_bashcompletion_with_subcommands.patch
  * Fixes: (#72) https://github.com/maros/MooseX-App/issues/72 
BETA DEBUG END:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-MooseX-App.spec ++++++
--- /var/tmp/diff_new_pack.SeptXg/_old  2024-08-14 14:16:55.601745481 +0200
+++ /var/tmp/diff_new_pack.SeptXg/_new  2024-08-14 14:16:55.605745648 +0200
@@ -18,7 +18,7 @@
 
 %define cpan_name MooseX-App
 Name:           perl-MooseX-App
-Version:        1.430.0
+Version:        1.430.1
 Release:        0
 %define cpan_version 1.43
 License:        Artistic-1.0 OR GPL-1.0-or-later
@@ -26,6 +26,8 @@
 URL:            https://metacpan.org/release/%{cpan_name}
 Source0:        
https://cpan.metacpan.org/authors/id/M/MA/MAROS/%{cpan_name}-%{cpan_version}.tar.gz
 Source1:        cpanspec.yml
+# PATCH-FIX-UPSTREAM M0ses https://github.com/maros/MooseX-App/issues/72
+Patch0:         0001_fix_bashcompletion_with_subcommands.patch
 BuildArch:      noarch
 BuildRequires:  perl
 BuildRequires:  perl-macros
@@ -111,7 +113,7 @@
 keywords respectively.
 
 %prep
-%autosetup  -n %{cpan_name}-%{cpan_version}
+%autosetup  -n %{cpan_name}-%{cpan_version} -p 1
 
 find . -type f ! -path "*/t/*" ! -name "*.pl" ! -path "*/bin/*" ! -path 
"*/script/*" ! -path "*/scripts/*" ! -name "configure" -print0 | xargs -0 chmod 
644
 

++++++ 0001_fix_bashcompletion_with_subcommands.patch ++++++
diff --git a/lib/MooseX/App/Plugin/BashCompletion/Command.pm 
b/lib/MooseX/App/Plugin/BashCompletion/Command.pm
index afe5c66..cdc1bc2 100644
--- a/lib/MooseX/App/Plugin/BashCompletion/Command.pm
+++ b/lib/MooseX/App/Plugin/BashCompletion/Command.pm
@@ -17,8 +17,10 @@ sub bash_completion {
     my %command_map;
     my $app_meta        = $app->meta;
     my $commands        = $app_meta->app_commands;
-    my @commands_to_complete = grep { $_ ne 'bash_completion' } sort keys 
%{$commands};
-    my $command_list    = join (' ', @commands_to_complete);
+    my @filtered_cmds   = grep { $_ ne 'bash_completion' } keys %{$commands};
+    my %unique_cmds     = map { my @c = split ' ', $_; ($c[0], 1); } 
@filtered_cmds;
+    my @cmds2complete   = sort(@filtered_cmds);
+    my $command_list    = join (' ', sort(keys(%unique_cmds)));
     my $package         = __PACKAGE__;
     my $prefix          = $app_meta->app_base;
 
@@ -29,14 +31,17 @@ sub bash_completion {
 
     $prefix             =~ tr/./_/;
 
-    foreach my $command (@commands_to_complete) {
+    foreach my $command (@cmds2complete) {
         my $command_class = $commands->{$command};
         Class::Load::load_class($command_class);
-        #my @parameters = 
$app_meta->command_usage_attributes($command_class->meta,'parameter');
-        my @options = 
$app_meta->command_usage_attributes($command_class->meta,[qw(option proto)]);
+       my @sub_map  = map { $_ =~ /^${command} (\w+)/; $1;  } 
sort(@filtered_cmds);
+       my @sub_cmds = grep { defined $_ } @sub_map;
+        my @options = $app_meta->command_usage_attributes(
+                       $command_class->meta,
+                       [qw(option proto)],
+                     );
         $command_map{$command} = {
-            #parameters  => [ map { $_->is_required } @parameters ],
-            options     => [ map { $_->cmd_usage_name } @options ],
+            options => [@sub_cmds, sort(map { $_->cmd_usage_name } @options)],
         };
     }
 
@@ -60,9 +65,11 @@ _${prefix}_macc_help() {
 EOT
 
     foreach my $command (sort keys %command_map) {
-        $syntax .= "_${prefix}_macc_${command}() {\n    _${prefix}_compreply 
\"";
+        my $fn_suffix = $command;
+        $fn_suffix =~ s/ /_/g;
+        $syntax .= "_${prefix}_macc_${fn_suffix}() {\n    _${prefix}_compreply 
\"";
         #$syntax .= join(" ", @{$data->{parameters}});
-        $syntax .= join(" ", sort @{$command_map{$command}->{options}});
+        $syntax .= join(" ", @{$command_map{$command}->{options}});
         $syntax .= "\"\n}\n\n";
     }
 
diff --git a/t/08_plugin_various.t b/t/08_plugin_various.t
index d84ad23..179431e 100644
--- a/t/08_plugin_various.t
+++ b/t/08_plugin_various.t
@@ -19,6 +19,10 @@ subtest 'Bash completion' => sub {
     like($bash_completion,qr/_test03_macc_somecommand\(\)\s\{/,'some_command 
present');
     like($bash_completion,qr/--global_option/,'global_option present');
     like($bash_completion,qr/--roleattr/,'roleattr present');
+    like($bash_completion,qr/_test03_macc_cmdwithsubcommands_subb/,'subcommand 
B present');
+    like($bash_completion,qr/_test03_macc_cmdwithsubcommands_subb/,'subcommand 
B present');
+    unlike($bash_completion,qr/_test03_macc_cmdwithsubcommands 
subb/,'subcommand B present');
+    unlike($bash_completion,qr/_test03_macc_cmdwithsubcommands 
subb/,'subcommand B present');
     unlike($bash_completion,qr/bash_completion/,'bash_completion is not 
included');
 };
 
diff --git a/t/testlib/Test03/CmdWithSubCommands/SubA.pm 
b/t/testlib/Test03/CmdWithSubCommands/SubA.pm
new file mode 100644
index 0000000..bf62c43
--- /dev/null
+++ b/t/testlib/Test03/CmdWithSubCommands/SubA.pm
@@ -0,0 +1,14 @@
+package Test03::CmdWithSubCommands::SubA;
+
+use MooseX::App::Command;
+
+sub run {
+    my ($self) = @_;
+    use Data::Dumper;
+    {
+      local $Data::Dumper::Maxdepth = 2;
+      warn __FILE__.':line'.__LINE__.':'.Dumper($self);
+    }
+}
+
+1;
diff --git a/t/testlib/Test03/CmdWithSubCommands/SubB.pm 
b/t/testlib/Test03/CmdWithSubCommands/SubB.pm
new file mode 100644
index 0000000..bb2678f
--- /dev/null
+++ b/t/testlib/Test03/CmdWithSubCommands/SubB.pm
@@ -0,0 +1,14 @@
+package Test03::CmdWithSubCommands::SubB;
+
+use MooseX::App::Command;
+
+sub run {
+    my ($self) = @_;
+    use Data::Dumper;
+    {
+      local $Data::Dumper::Maxdepth = 2;
+      warn __FILE__.':line'.__LINE__.':'.Dumper($self);
+    }
+}
+
+1;

++++++ cpanspec.yml ++++++
--- /var/tmp/diff_new_pack.SeptXg/_old  2024-08-14 14:16:55.649747487 +0200
+++ /var/tmp/diff_new_pack.SeptXg/_new  2024-08-14 14:16:55.653747655 +0200
@@ -7,8 +7,8 @@
 #sources:
 #  - source1
 #  - source2
-#patches:
-#  bar.patch:
+patches:
+    0001_fix_bashcompletion_with_subcommands.patch: -p1 PATCH-FIX-UPSTREAM 
M0ses https://github.com/maros/MooseX-App/issues/72
 preamble: |-
   BuildRequires: perl(Config::Any)
 #post_prep: |-

Reply via email to