diff --git a/bin/foamCleanPath b/bin/foamCleanPath index 02f7a293a6dca4fd3d602e7c791f33432465a6ec..a06d24934a25c04ffdc75ba88af4521fec1adfee 100755 --- a/bin/foamCleanPath +++ b/bin/foamCleanPath @@ -27,6 +27,7 @@ # - false matches possible when the filter contains '.' (sed regex) etc. # - a single composite filter can be passed in. This composite filter # is assumed to be delimited by whitespace, colons or semi-colons. +# - will not filter out standard system paths (/usr/bin etc) # # Examples for cleaning the path: # @@ -194,11 +195,22 @@ printDebug "input>$dirList<" # Apply filters via sed. Path and filter cannot contain '?'. for filter do - if [ -n "$filter" ] - then - printDebug "remove>$filter<" - dirList=$(echo "$dirList:" | sed -e "s?${filter}[^:]*:??g") - fi + case "$filter" in + ( / | /bin | /sbin | /lib | /lib64 | /opt \ + | /usr | /usr/bin | /usr/sbin | /usr/lib | /usr/lib64 \ + | /usr/local | /usr/local/bin | /usr/local/lib | /usr/local/lib64 ) + # Do not filter out system directories + printDebug "skip>$filter<" + ;; + + (*) + if [ -n "$filter" ] + then + printDebug "remove>$filter<" + dirList=$(echo "$dirList:" | sed -e "s?${filter}[^:]*:??g") + fi + ;; + esac done printDebug "intermediate>$dirList<"