-
Notifications
You must be signed in to change notification settings - Fork 618
/
Copy pathwcleanPlatform
executable file
·135 lines (115 loc) · 4.07 KB
/
wcleanPlatform
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | Website: https://openfoam.org
# \\ / A nd | Copyright (C) 2015-2018 OpenFOAM Foundation
# \\/ M anipulation |
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM.
#
# OpenFOAM is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
#
# Script
# wcleanPlatform
#
# Usage
# wcleanPlatform [ -current | -all ]
# wcleanPlatform <platform> [ ... <platformN> ]
#
# Description
# Deletes the specified platforms object files directories from the
# the project top-level platforms directory $WM_PROJECT_DIR.
#
# You need to be in the project top-level directory to run this script.
#
# Options
# -current: clean the current platform
# -all: clean all platforms
#
# If either -current or no platform is specified then the current platform
# $WM_OPTIONS is deleted.
#
# If the -all option is specified all platforms and lnInclude directories
# are deleted
#
#------------------------------------------------------------------------------
Script=${0##*/}
error() {
exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
usage
exit 1
}
usage() {
cat<<USAGE
Usage: $Script [ OPTIONS ]
$Script <platform> [ ... <platformN> ]
options:
-all all platforms
-current current platform
-help print the usage
Deletes the specified platforms object files directories from the
the project top-level platforms directory $WM_PROJECT_DIR.
You need to be in the project top-level directory to run this script.
If either -current or no platform is specified then the current platform
$WM_OPTIONS is deleted.
If the -all option is specified all platforms and lnInclude directories
are deleted.
USAGE
}
# Print help message
if [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
usage && exit 0
fi
# Check the script is executed from the project top-level directory
[ "$PWD" = "$WM_PROJECT_DIR" ] || \
error "Not in the project top-level directory " "$WM_PROJECT_DIR"
# Get the platforms from the arguments
platforms="$*"
# If no arguments are provided select the current platform
if [ "$#" -lt 1 ]; then
platforms="-current"
fi
if [ "$platforms" = "-all" ]; then
echo "Removing all platforms/sub-directories"
rm -rf platforms/*
echo "Removing lnInclude directories"
find . -depth -type d \( -name lnInclude \) -print0 | xargs -0 rm -rf
tutorials/Allclean
else
# Loop over the platforms specified and delete the object directories
for platform in $platforms
do
if [ "$platform" = "-current" ]
then
platform="$WM_OPTIONS"
echo "Current platform $platform"
[ -n "$platform" ] || continue
fi
if [ -d platforms/"${platform}" ]
then
echo "Cleaning platform $platform"
rm -rf platforms/"${platform}"*
else
echo "Platform $platform not built"
fi
done
fi
#------------------------------------------------------------------------------
# Cleanup local variables and functions
#------------------------------------------------------------------------------
unset Script platforms error usage
#------------------------------------------------------------------------------