sub
run {
my
$self
=
shift
;
die
"Not in git repository\n"
unless
( -e
".git/HEAD"
);
open
FH ,
"<"
,
".git/HEAD"
;
my
$ref
= <FH>;
close
FH;
chomp
(
$ref
);
my
(
$branch
) = (
$ref
=~ m{
ref
:\s(\S+)} );
my
@lines
=
split
/\n/,
qx{ git remote -v | grep '(fetch)'}
;
for
my
$line
(
@lines
) {
my
(
$remote
,
$uri
,
$type
) = (
$line
=~ m{^(\w+)\s+(\S+)\s+\((\w+)\)} );
info
"Updating from $remote ..."
;
qx{ git pull --rebase $remote $branch}
;
if
(
$uri
=~ /^git\
@github
\.com/ ) {
info
"Pushing changes to $remote : $uri"
;
qx{ git push $remote $branch}
;
}
}
}
1;