foamGet: sets the target directory after the file selection is confirmed
This commit is contained in:
61
bin/foamGet
61
bin/foamGet
@ -3,7 +3,7 @@
|
|||||||
# ========= |
|
# ========= |
|
||||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
# \\ / O peration | Website: https://openfoam.org
|
# \\ / O peration | Website: https://openfoam.org
|
||||||
# \\ / A nd | Copyright (C) 2018-2020 OpenFOAM Foundation
|
# \\ / A nd | Copyright (C) 2018-2021 OpenFOAM Foundation
|
||||||
# \\/ M anipulation |
|
# \\/ M anipulation |
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# License
|
# License
|
||||||
@ -77,7 +77,7 @@ findFiles () {
|
|||||||
_prefix="$2"
|
_prefix="$2"
|
||||||
_ext="$3"
|
_ext="$3"
|
||||||
|
|
||||||
if [ -z "$_ext" -o "$_ext" = "ANY" ] ; then
|
if [ -z "$_ext" ] || [ "$_ext" = "ANY" ] ; then
|
||||||
findFilesInDirs "$_dirs" "$_prefix"
|
findFilesInDirs "$_dirs" "$_prefix"
|
||||||
else
|
else
|
||||||
findFilesInDirs "$_dirs" "${_prefix}.${_ext}"
|
findFilesInDirs "$_dirs" "${_prefix}.${_ext}"
|
||||||
@ -92,7 +92,7 @@ pruneFiles () {
|
|||||||
-maxdepth 1 -mindepth 1 \
|
-maxdepth 1 -mindepth 1 \
|
||||||
-type d -name "[[:digit:]]*" \
|
-type d -name "[[:digit:]]*" \
|
||||||
-o -name "dev" 2> /dev/null | \
|
-o -name "dev" 2> /dev/null | \
|
||||||
grep -v $WM_PROJECT_VERSION | \
|
grep -v "$WM_PROJECT_VERSION" | \
|
||||||
awk -F "/" '{print $NF}')"
|
awk -F "/" '{print $NF}')"
|
||||||
[ "$_vers" ] && \
|
[ "$_vers" ] && \
|
||||||
for _v in $_vers
|
for _v in $_vers
|
||||||
@ -141,10 +141,37 @@ listArgs () {
|
|||||||
cpFile () {
|
cpFile () {
|
||||||
_file="$1"
|
_file="$1"
|
||||||
_dir="$2"
|
_dir="$2"
|
||||||
|
|
||||||
|
[ -d "$_dir" ] || return 0
|
||||||
|
|
||||||
echo "Copying $_file to $_dir"
|
echo "Copying $_file to $_dir"
|
||||||
cp "$_file" "$_dir"
|
cp "$_file" "$_dir"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setTgt () {
|
||||||
|
_prefix="$1"
|
||||||
|
_file="$2"
|
||||||
|
_tgt="$3"
|
||||||
|
|
||||||
|
! [ "$_tgt" ] && \
|
||||||
|
echo "$_file" | grep -Eq "(fvModel|fvConstraint)" && \
|
||||||
|
_tgt="constant"
|
||||||
|
|
||||||
|
! [ "$_tgt" ] && \
|
||||||
|
case "$prefix" in
|
||||||
|
All*) _tgt="." ;;
|
||||||
|
*Properties|*Cloud) _tgt="constant" ;;
|
||||||
|
s) _tgt="0" ;;
|
||||||
|
*) _tgt="system" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "$_tgt"
|
||||||
|
|
||||||
|
[ -d "$_tgt" ] && return 0
|
||||||
|
echo "target directory does not exist: '$_tgt'" >&2
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
setFile () {
|
setFile () {
|
||||||
_files="$1"
|
_files="$1"
|
||||||
_n="$2"
|
_n="$2"
|
||||||
@ -207,25 +234,8 @@ done
|
|||||||
[ $# -eq 1 ] || error "missing argument: no file name/prefix <file> supplied"
|
[ $# -eq 1 ] || error "missing argument: no file name/prefix <file> supplied"
|
||||||
prefix="$1"
|
prefix="$1"
|
||||||
|
|
||||||
[ "$tgt" ] || \
|
|
||||||
case "$prefix" in
|
|
||||||
All*)
|
|
||||||
tgt="."
|
|
||||||
;;
|
|
||||||
*Properties|*Cloud)
|
|
||||||
tgt="constant"
|
|
||||||
;;
|
|
||||||
s)
|
|
||||||
tgt="0"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
tgt="system"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
[ -s "system/controlDict" ] || \
|
[ -s "system/controlDict" ] || \
|
||||||
echo "Warning: cannot find OpenFOAM case directory (no system/controlDict file)"
|
echo "Warning: cannot find OpenFOAM case directory (no system/controlDict file)"
|
||||||
[ -d "$tgt" ] || error "target directory does not exist: '$tgt'"
|
|
||||||
|
|
||||||
files="$(findFiles "$searchDirs" "$prefix" "$ext")"
|
files="$(findFiles "$searchDirs" "$prefix" "$ext")"
|
||||||
|
|
||||||
@ -236,7 +246,9 @@ files="$(pruneFiles $files)"
|
|||||||
error "no file $prefix found $(noFilesMessage "$ext")"
|
error "no file $prefix found $(noFilesMessage "$ext")"
|
||||||
|
|
||||||
nFiles="$(nArgs "$files")"
|
nFiles="$(nArgs "$files")"
|
||||||
[ "$nFiles" -eq 1 ] && cpFile "$files" "$tgt" && exit 0
|
[ "$nFiles" -eq 1 ] && \
|
||||||
|
tgt="$(setTgt "$prefix" "$files" "$tgt")" && \
|
||||||
|
cpFile "$files" "$tgt" && exit 0
|
||||||
|
|
||||||
echo "Multiple files with \"$prefix\" prefix found:"
|
echo "Multiple files with \"$prefix\" prefix found:"
|
||||||
suggest="$(listArgs "$files")"
|
suggest="$(listArgs "$files")"
|
||||||
@ -246,15 +258,16 @@ echo "$files" | grep -q "annotated/" && \
|
|||||||
printf "\n%s" "Enter file number (1-$nFiles) to obtain description "
|
printf "\n%s" "Enter file number (1-$nFiles) to obtain description "
|
||||||
[ -n "$suggest" ] && printf "%s" "(suggest $suggest) "
|
[ -n "$suggest" ] && printf "%s" "(suggest $suggest) "
|
||||||
printf "%s" ": "
|
printf "%s" ": "
|
||||||
read nFile
|
read -r nFile
|
||||||
|
|
||||||
[ -z "$nFile" -a -n "$suggest" ] && nFile="$suggest"
|
[ -z "$nFile" ] && [ -n "$suggest" ] && nFile="$suggest"
|
||||||
[ -z "$nFile" ] && \
|
[ -z "$nFile" ] && \
|
||||||
echo "Cannot specify nothing; re-run and enter a file number" && exit 1
|
echo "Cannot specify nothing; re-run and enter a file number" && exit 1
|
||||||
! [ "$nFile" -eq "$nFile" ] 2>/dev/null && \
|
! [ "$nFile" -eq "$nFile" ] 2>/dev/null && \
|
||||||
echo "\"$nFile\" is not a number between 1 and $nFiles" && exit 1
|
echo "\"$nFile\" is not a number between 1 and $nFiles" && exit 1
|
||||||
[ "$nFile" -lt 1 -o "$nFile" -gt "$nFiles" ] && \
|
[ "$nFile" -lt 1 ] || [ "$nFile" -gt "$nFiles" ] && \
|
||||||
echo "\"$nFile\" is not a number between 1 and $nFiles" && exit 1
|
echo "\"$nFile\" is not a number between 1 and $nFiles" && exit 1
|
||||||
|
|
||||||
file="$(setFile "$files" "$nFile")"
|
file="$(setFile "$files" "$nFile")"
|
||||||
|
tgt="$(setTgt "$prefix" "$file" "$tgt")"
|
||||||
cpFile "$file" "$tgt"
|
cpFile "$file" "$tgt"
|
||||||
|
|||||||
Reference in New Issue
Block a user