summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rwxr-xr-xinclude/git.sh25
1 files changed, 4 insertions, 21 deletions
diff --git a/include/git.sh b/include/git.sh
index 5fe41fb3..23110ff3 100755
--- a/include/git.sh
+++ b/include/git.sh
@@ -181,27 +181,10 @@ move_repo()
# called from script/trees when downloading sources.
nuke()
{
- del="n"
- pjcfgdir="${1%/}"
- pjsrcdir="${2%/}"
- pjsrcdir="${pjsrcdir#src/}"
- [ ! -f "config/$pjcfgdir/nuke.list" ] && return 0
+ e "config/${1%/}/nuke.list" f missing && return 0
while read -r nukefile; do
- rmf="$(realpath "src/$pjsrcdir/$nukefile" 2>/dev/null)" || \
- continue
- [ -L "$rmf" ] && continue # we will delete the actual file
- [ "${rmf#"$PWD/src/$pjsrcdir"}" = "$rmf" ] && continue
- [ "${rmf#"$PWD/src/"}" = "$pjsrcdir" ] && continue
- rmf="${rmf#"$PWD/"}"
- [ -e "$rmf" ] || continue
- del="y"
- rm -Rf "$rmf" || $err "$nuke pjcfgdir: can't rm \"$nukefile\""
- printf "nuke %s: deleted \"%s\"\n" "$pjcfgdir" "$rmf"
- done < "config/$pjcfgdir/nuke.list"
-
- [ "${del}" = "y" ] && return 0
- printf "nuke %s: no defined files exist in dir, src/%s\n" 1>&2 \
- "$pjcfgdir" "$pjsrcdir"
- printf "(this is not an error)\n" 1>&2
+ rmf="${2%/}/$nukefile" && [ -L "$rmf" ] && continue
+ e "$rmf" e missing || rm -Rf "$rmf" || $err "!rm $rmf, ${2%/}"
+ done < "config/${1%/}/nuke.list"; return 0
}