App-Greple-update

 view release on metacpan or  search on metacpan

lib/App/Greple/update.pm  view on Meta::CPAN

182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
our $opt_U = '';
 
my $current_file;
my $contents;
my @update_diffcmd;
 
sub debug {
    $debug = 1;
}
 
sub update_initialize {
    @update_diffcmd = shellwords $opt_update_diffcmd;
    if ($opt_U ne '') {
        @update_diffcmd = ('diff', "-U$opt_U");
    }
    if (defined $opt_backup) {
        $opt_suffix = $opt_backup ne '' ? $opt_backup : '.bak';
    }
}
 
sub update_begin {
    my %arg = @_;
    $current_file = delete $arg{&FILELABEL} or die;
    $contents = $_ if $remember_data;
}
 
#
# define &divert_stdout and &recover_stdout
#
{
    my $diverted = 0;

lib/App/Greple/update.pm  view on Meta::CPAN

222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
    sub recover_stdout {
        $diverted = $diverted == 1 ? 0 : return;
        close STDOUT;
        open  STDOUT, '>&', \*UPDATE_STDOUT or die "open: $!";
    }
}
 
use List::Util qw(first);
 
sub update_diff {
    my $orig = $current_file;
    my $fh;
    state $fdpath = do {
        my $fd = DATA->fileno;
        first { -r "$_/$fd" } qw( /dev/fd /proc/self/fd );
    };
 
    if ($fdpath and $remember_data) {
        use IO::File;
        use Fcntl;

lib/App/Greple/update.pm  view on Meta::CPAN

249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
        $orig = sprintf "%s/%d", $fdpath, $fh->fileno;
    }
 
    @update_diffcmd or confess "Empty diff command";
    exec @update_diffcmd, $orig, "-";
    die "exec: $!\n";
}
 
my $divert_buffer;
 
sub update_divert {
    my %arg = @_;
    my $filename = delete $arg{&FILELABEL};
 
    $divert_buffer = '';
    divert_stdout(\$divert_buffer);
}
 
sub update_file {
    my %arg = @_;
    my $filename = delete $arg{&FILELABEL};
    my $newname = '';
 
    recover_stdout() or die;
    return if $arg{discard};
    $divert_buffer = decode 'utf8', $divert_buffer;
 
    return if $divert_buffer eq $_;
    return if $divert_buffer eq '';

t/Util.pm  view on Meta::CPAN

9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
my $greple_path = get_path('greple', 'App::Greple') or die Dumper \%INC;
 
sub greple {
    Runner->new($greple_path, @_);
}
 
sub run {
    greple(@_)->run;
}
 
sub update {
    greple '-Mupdate', @_;
}
 
sub slurp {
    my $file = shift;
    open my $fh, "<:utf8", $file or die "open: $!";
    do { local $/; <$fh> };
}
 
sub line {



( run in 0.369 second using v1.01-cache-2.11-cpan-ec4f86ec37b )