chiark
/
gitweb
/
~ianmdlvl
/
nailing-cargo.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e859006
)
Optimise linkfarming
author
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Sat, 10 Oct 2020 01:49:26 +0000
(
02:49
+0100)
committer
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Sat, 10 Oct 2020 01:49:26 +0000
(
02:49
+0100)
This saves about 100ms in my project!
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
nailing-cargo
patch
|
blob
|
history
diff --git
a/nailing-cargo
b/nailing-cargo
index c1b21ec0d14082b7280ef7d111128ba8a819beb1..068a3f92bd7472b89d4331b3497387fc81aad402 100755
(executable)
--- a/
nailing-cargo
+++ b/
nailing-cargo
@@
-649,9
+649,12
@@
END_FILES_GIT
END_FILES_FULL
}
$pre .= <<'END_DEEP';
- xargs -0r sh -ec 'src="$1"; shift; for f in "$@"; do
- ln -sf -- "$src/${f#./}" "$f";
- done' x "$src";
+ perl -0 -ne '
+ BEGIN { $src=shift @ARGV; }
+ next if (readlink "$_"//"") eq "$src/$_";
+ unlink "$_";
+ symlink "$src/$_", "$_" or die "$_ $!";
+ ' "$src";
END_DEEP
}
$pre .= <<'ENDLK' if $do_cargo_lock;