mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-14 09:11:27 +00:00
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.3.x@7605 d57e44dd-8a1f-0410-8b47-8ef2f437770f
55 lines
1.2 KiB
Bash
Executable File
55 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
shopt -s nullglob
|
|
|
|
remove_empty_directories() {
|
|
find . -depth -type d |
|
|
sed 's|^\./||' |
|
|
grep -Ev '^\.$|^\.svn/|/\.svn/|/\.svn$|^\.hg/|^\.hg$|^\.git/|^\.git$' |
|
|
while read -r d; do
|
|
for f in "$d"/{*,.*}; do
|
|
if ! [ -e "$f" ]; then
|
|
rmdir "$d"
|
|
fi
|
|
break
|
|
done
|
|
done
|
|
}
|
|
|
|
if [ $# = 0 ]; then
|
|
# shellcheck source=clean-source-tree
|
|
. "$0" .
|
|
else
|
|
for d in "$@"; do
|
|
(
|
|
if cd "$d"; then
|
|
if [ -e .svn ]; then
|
|
if ! type -p svn >&/dev/null; then
|
|
echo "$0: svn: not found."
|
|
exit 0
|
|
fi
|
|
"$(dirname "$0")"/list-non-source-files |
|
|
while read -r f; do
|
|
if [ "$f" != "TAGS" ]; then rm -rf -- "$f"; fi;
|
|
done
|
|
elif [ -e .git ] || [ -e ../.git ]; then
|
|
if ! type -p git >&/dev/null; then
|
|
echo "$0: git: not found."
|
|
exit 0
|
|
fi
|
|
git clean -f -d -x -e TAGS >/dev/null
|
|
remove_empty_directories
|
|
elif [ -e .hg ] || [ -e ../.hg ]; then
|
|
if ! type -p hg >&/dev/null; then
|
|
echo "$0: hg: not found."
|
|
exit 0
|
|
fi
|
|
hg purge --all
|
|
else
|
|
echo "$0: $d: not administered by Subversion, Git or Mercurial."
|
|
fi
|
|
fi
|
|
)
|
|
done
|
|
fi
|