kentfredric (owner)

Revisions

gist: 215491 Download_button fork
public
Public Clone URL: git://gist.github.com/215491.git
Embed All Files: show embed
Perl #
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
#!/usr/bin/perl
 
use strict;
use warnings;
 
use Sys::Syslog;
use IPC::Run::Fused qw( run_fused );
use Data::Dumper qw( Dumper );
 
$Data::Dumper::Indent = 0;
 
sub do_log {
    my ( $name, $opts, $code ) = @_;
    openlog( $name, $opts, 'user' );
    my $error;
    {
        local $@;
 
        eval { $code->(); };
 
        $error = $@;
    }
    closelog();
    die $error if $error;
}
 
sub run_syslogged {
    my ( $message, @rest ) = @_;
    do_log( $message, 'pid', sub {
        syslog('info', "Calling : ". Dumper([ @rest ]));
        
        run_fused( my $fh, @rest ) || die "Run Fused failed :( $@ ";
        
        while ( my $line = <$fh> ) {
         chomp $line;
          syslog( 'info', $line );
        }
        
        close $fh;
    } );
}
 
my @repos = ();
 
push @repos, qw( kde vdr-testing x11 berkano gentoo gnash-cvs );
push @repos, qw( ikelos java-overlay kde3 mozilla php-experimental );
push @repos, qw( php-testing postgresql-experimental postgresql-testing );
push @repos, qw( qting-edge toolchain );
 
chdir '/var/paludis/repositories/perl-git/';
run_syslogged( 'paludis --sync perl', qw( sudo -u kent bash ./rebase.sh ) );
run_syslogged( 'paludis --sync perl', qw( sudo -u kent git checkout mergemaster ) );
run_syslogged( 'paludis --sync ', qw( paludis --sync ), @repos );