summaryrefslogtreecommitdiff
path: root/Debian/Dgit.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Debian/Dgit.pm')
-rw-r--r--Debian/Dgit.pm12
1 files changed, 11 insertions, 1 deletions
diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm
index ac44b9a..fa85374 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";
}