our $just_linkfarm;
our $leave_nailed;
our $oot_clean;
+our $oot_preclean;
our $do_nail=1;
our $do_cargo_lock=1;
our $do_lock=1;
$cargo_lock_update ? 'shallow' :
'';
+ $oot_preclean //= 'no';
+
our @add;
if (!$cargo_lock_update) {
bld="$1"; shift; sd="$1"; shift; src="$1"; shift;
cd "$bld"; mkdir -p -- "$sd"; cd "$sd";
END_BOTH
+ if ($oot_preclean ne 'no') {
+ $pre.= "find . -maxdepth 1 ! -path .";
+ $pre.= " ! -path ./target" if $oot_preclean ne 'full';
+ $pre.= " -print0 | xargs -0r echo rm -r --;"
+ }
if ($linkfarm_depth eq 'shallow') {
$pre.= <<'END_SHALLOW';
clean () { find -lname "$src/*" -print0 | xargs -0r rm --; }; clean;
$do_nail = $do_cargo_lock = $do_lock = 0;
} elsif (m{^--(clean|keep)-linkfarm$}) {
$oot_clean = $1 eq 'clean';
+ } elsif (m{^--(no-)?preclean-linkfarm$}) {
+ $oot_preclean = $1 ? 'no' : 'src';
+ } elsif (m{^--preclean-linkfarm=(no|src|full)$}) {
+ $oot_preclean = $1;
} elsif (m{^--(no-)?nail$}) {
$do_nail = !$1;
} elsif (m{^--(no-)?cargo-lock-manip$}) {