Import Upstream version 20180207
[hcoop/debian/mlton.git] / bin / clean
CommitLineData
7f918cf1
CE
1#!/usr/bin/env bash
2
3set -e
4
5die () {
6 echo >&2 "$1"
7 exit 1
8}
9
10usage () {
11 die "usage: $name [--exclude <path> ...]"
12}
13
14
15name=$(basename "$0")
16dir=$(dirname "$0")
17root=$(cd "$dir/.." && pwd)
18bin="$root/bin"
19
20declare -a exclude
21while [ "$#" -gt 0 ]; do
22 case "$1" in
23 "--exclude")
24 shift
25 if [ "$#" -gt 0 ]; then
26 exclude+=("$1");
27 shift
28 fi
29 ;;
30 *) usage
31 ;;
32 esac
33done
34
35doit () {
36 # rm -rf '.#'* .*~ *~ *.a *.o .cm core mlmon.out svn-commit.*
37 "$bin/ls-ignore" | xargs rm -rf
38 for f in *; do
39 if [ -d "$f" ]; then
40 for ((i=0; i < ${#exclude[*]}; i++)); do
41 if [ "$f" == "${exclude[$i]}" ]; then
42 continue 2
43 fi
44 done
45 cd "$f"
46 if [ -r Makefile ]; then
47 "$bin/mmake" clean || doit
48 else
49 doit
50 fi
51 cd ..
52 fi
53 done
54}
55
56doit