gs / update_system.pl

#!/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;
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.