From 35136dd4ac5b9ce6c71a0716e81e98e2aac7e77f Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Fri, 19 Mar 2010 21:35:53 +0100 Subject: Add helper to check if feh completion is up-to-date --- helpers/check-feh-completion | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 helpers/check-feh-completion diff --git a/helpers/check-feh-completion b/helpers/check-feh-completion new file mode 100755 index 0000000..a6d0230 --- /dev/null +++ b/helpers/check-feh-completion @@ -0,0 +1,38 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use 5.010; + +my $man_path = "$ENV{HOME}/packages/feh/feh.1"; +my $comp_path = "$ENV{HOME}/packages/zsh/etc/completions/_feh"; + +my @options; + +open(my $comp_file, '<', $comp_path) or die("Can't open $comp_path: $!"); +while (my $line = <$comp_file>) { + + if ($line =~ /^ \t '(? [\w-]+ )' \s+ '(? . ) \+? ' $/xo) { + push(@options, [@+{'short', 'long'}]); + } + elsif ($line =~ /^ \t ' \*? -- (? [\w-]+ ) \[/xo) { + push(@options, [undef, $+{'long'}]); + } + +} +close($comp_file); + +open(my $man_file, '<', $man_path) or die("Can't open $man_path: $!"); +while (my $line = <$man_file>) { + + if ($line !~ /^ \.B \s (?: -(? . ), \s )? --(? [\w-]+ )/xo) { + next; + } + + if (not grep { $_ ~~ [@+{'short', 'long'}] } @options) { + printf("not in completion: %s %s\n", + $+{short} || ' ', $+{long}, + ); + } + +} +close($man_file); -- cgit v1.2.3