X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=Debian%2FDgit.pm;h=fa85374150288cc53a1ef363042262315b76ab52;hp=ac44b9ab4c529f712a0c9322d2c1e2b146702250;hb=9acb31a971d4f653836bbcf07410f51d3f80dbdd;hpb=ab500fe2332b6ad9af0baedd50440331c0b83492 diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index ac44b9ab..fa853741 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -17,7 +17,8 @@ BEGIN { @ISA = qw(Exporter); @EXPORT = qw(setup_sigwarn debiantag server_branch server_ref - stat_exists fail ensuredir executable_on_path + stat_exists link_ltarget + fail ensuredir executable_on_path waitstatusmsg failedcmd cmdoutput cmdoutput_errok git_rev_parse git_get_ref git_for_each_ref @@ -219,6 +220,15 @@ sub cmdoutput { return $d; } +sub link_ltarget ($$) { + my ($old,$new) = @_; + lstat $old or return undef; + if (-l _) { + $old = cmdoutput qw(realpath --), $old; + } + link $old, $new or die "link $old $new: $!"; +} + sub git_rev_parse ($) { return cmdoutput qw(git rev-parse), "$_[0]~0"; }