This file is indexed.

/usr/bin/prolix is in prolix 0.03-1.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
#!/usr/bin/perl -w

eval 'exec /usr/bin/perl -w -S $0 ${1+"$@"}'
    if 0; # not running under some shell
package main; # work around old Pod::Weaver::Section::Version bug.
# ABSTRACT: trim chatty command outputs
# PODNAME: prolix

use strict;
use warnings;

use App::Prolix;

my $prolix = App::Prolix->new_with_options();
$prolix->_cmd($prolix->extra_argv);
$prolix->run;



=pod

=head1 NAME

prolix - trim chatty command outputs

=head1 VERSION

version 0.03

=head1 SYNOPSIS

  # Run spammy_command and log its output, but weed out some output
  prolix -b '(spam)' -l auto -- spammy_command cmd_opt1 cmd_opt2

  # While it's running, hit enter and add another ignore term at the
  # interactive prompt
  prolix> ignore_substring (more spam)


  # Weed uninteresting fields out of a log file.
  # Pipe mode is not interactive; but it accepts the same filtering
  # arguments as the full interactive mode.
  tail -f error.log | prolix -s 's/^\[(.*?\] ){3}//'

=head1 DESCRIPTION

B<prolix> launches a command and captures its standard output and
error. It suppresses uninteresting lines. Unlike C<grep -v>, it is an
interactive program; hit B<enter> to add suppression patterns as new
anoyances come up on your terminal. You can weed out by full or substring
line matches, as well as regexp. You can also apply substitutions to
lines, for example shorten overly chatty fields.

prolix can be configured to automatically store a filtered log of
output from the commands that it captures.

When running in a pipeline, prolix can't interact with you, but it
does accept the same command line parameters, so it acts like a replacement
for C<sed>, C<grep -v>, and C<grep -E -v>.

[Planned] You can have prolix remember different profiles for different
command invocations, so that if you often debug a server, prolix (which
knows your command line) will identify what ignore/snippet patterns to
apply to it.

=head1 OPTIONS

Normally you will run prolix with:

    prolix [PROLIX OPTIONS] -- somecommand [COMMAND OPTIONS]

You can also put prolix in a pipeline.

    somecommand | prolix [PROLIX OPTIONS]

=over 4

=item -v, --verbose

When specified, C<prolix> will add some output of its own, for example
saying it's in pipe mode.

=item -p, --pipe

Force pipe mode. 

=item -l, --log=FILENAME

Log filtered output to FILENAME. If the argument looks like a pathname
(contains a "/"), we'll use that. Otherwise, the output will go to the
temporary directory (as defined by File::Spec->tmpdir).

The special value "auto" lets prolix pick a filename based on the command
being run.

The substring "%d" is expanded to a timestamp in a path-friendly variation
of iso8601. More substitutions may be added in the future.

=item -r, --ignore-re=REGEXP

Ignore files matching REGEXP. This is case-sensitive; use C<(?i:...)> to
ignore case. (-i may be added in the future.)

=item -n, --ignore-line=LINE

Ignore complete matches on LINE.

=item -b, --ignore-substring=SUBSTRING

Ignore lines containing SUBSTRING.

=item -s, --snippet=s/SEARCH_RE/REPLACE/

Transform lines by applying a Perl substitution on them. Useful, for example,
in getting rid of uninteresting fields in a logfile.

Here, modifiers C</i>, C</g>, and C</x> are honored. You can also use
alternate delimiters instead of C</>, including balanced ones (C<s{a}{b}>.)

We'll add facilities for doing this in a more convenient way for structured
lines in future versions. (For example, CSV or Apache CLF.)

=back

=head1 INTERACTIVE MODE

When C<prolix> launches a program itself (as opposed to pipe mode),
pressing B<enter> pauses the display of output from the program, and
you're dropped into a prompt. Here you can add more patterns to ignore
or apply new snippetting rules. These will take effect on subsequent output.
Blank input returns you to the normal running of the command.

The interactive mode has a "help" command listing available commands. Those
that add new filters follow the long command line options. So for example,
saying "ignore_substring temptation" will ignore all lines containing
"temptation".

You can also say "pats" to list all patterns in effect, and "clear_all"
to remove them. (Removing a particular rule is not supported but we can
add it if it is requested.)

=head1 SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc App::Prolix

You can also contact the maintainer at the address above or look for
information at:

=over 4

=item * AnnoCPAN: Annotated CPAN documentation

L<http://annocpan.org/dist/App-Prolix/>

=item * CPAN Ratings

L<http://cpanratings.perl.org/d/App-Prolix/>

=item * RT: CPAN's request tracker

L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=App-Prolix>

=item * Search CPAN

L<http://search.cpan.org/dist/App-Prolix/>

=item * Source repository

L<https://github.com/gaal/app-prolix>

=back

=head1 AUTHOR

Gaal Yahas <gaal@forum2.org>

=head1 COPYRIGHT AND LICENSE

This software is Copyright (c) 2012 by Google, Inc.

This is free software, licensed under:

  The MIT (X11) License

=cut


__END__