Source

gs / update_system.pl

Full commit
#!/usr/bin/env perl
#
# name:      update gentoo
# author:    Xu Xiaodong <xxdlhy@gmail.com>
# license:   GPL
# created:   2011 Apr  3
# modified:  2011 Oct 28
#

use strict;
use warnings;

use Getopt::Long;

my ( $no_sync, $help ) = (0) x 2;

GetOptions(
    'n|no-sync' => \$no_sync,
    'h|help'    => \$help,
);

die "Usage: $0 [-n] [-h]\n" if $help;

my $update = 'eix-sync';
my @cmds   = (
    'emerge -avuND world',
    'dispatch-conf',
    'emerge -av --depclean',
    'revdep-rebuild -i',
    'localepurge',
    'eclean -d distfiles',
);

my $reval = $no_sync ? 0 : run_cmd($update);

unless ($reval) {
    for my $cmd (@cmds) {
        run_cmd($cmd);
    }
}

sub run_cmd {
    my ($cmd) = @_;

    system $cmd;
}