From 7964d31d031034f29af09a047e4e9e461c09d0b1 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Sat, 24 Nov 2018 00:36:31 +0100
Subject: [PATCH] STYLE: remove special '.' version handling in foamEtcFile

- this would automatically change openfoam<digits> into maj.min.rel
  values, thus transforming openfoam1806 into a version "1.8.0.6" !
---
 bin/foamEtcFile | 63 +++++++++++++++++++------------------------------
 1 file changed, 24 insertions(+), 39 deletions(-)

diff --git a/bin/foamEtcFile b/bin/foamEtcFile
index 195b91bdbe4..c3c4b98585c 100755
--- a/bin/foamEtcFile
+++ b/bin/foamEtcFile
@@ -16,31 +16,29 @@
 # Description
 #     Locate user/group/other file as per '#includeEtc'.
 #
-#     The -mode option can be used to allow chaining from personal settings
-#     to site-wide settings.
-#
-#     For example, within the user ~/.OpenFOAM/<VER>/config.sh/compiler:
-#     \code
-#        eval $(foamEtcFile -sh -mode=go config.sh/compiler)
-#     \endcode
-#
-#     The -mode option is similarly used within etc/{bashrc,cshrc} to ensure
+#     The -mode option is used within etc/{bashrc,cshrc} to ensure
 #     that system prefs are respected:
 #     \code
 #        eval $(foamEtcFile -sh -mode=o  prefs.sh)
 #        eval $(foamEtcFile -sh -mode=ug prefs.sh)
 #     \endcode
 #
+#     The -mode option can also be used when chaining settings.
+#     For example, in the user ~/.OpenFOAM/<VERSION>/config.sh/compiler
+#     \code
+#        eval $(foamEtcFile -sh -mode=go config.sh/compiler)
+#     \endcode
+#
 # Environment
-#     - WM_PROJECT:         (unset defaults to OpenFOAM)
-#     - WM_PROJECT_SITE:    (unset defaults to PREFIX/site)
-#     - WM_PROJECT_VERSION: (unset defaults to detect from path)
+#     - WM_PROJECT              (unset defaults to OpenFOAM)
+#     - WM_PROJECT_VERSION      (unset defaults to detect from path)
+#     - WM_PROJECT_SITE         (unset defaults to PREFIX/site)
 #
 # Note
 #     This script must exist in one of these locations:
-#     - $WM_PROJECT_INST_DIR/OpenFOAM-<VERSION>/bin
-#     - $WM_PROJECT_INST_DIR/openfoam-<VERSION>/bin
-#     - $WM_PROJECT_INST_DIR/openfoam<VERSION>/bin  (debian version)
+#     - PREFIX/OpenFOAM-<VERSION>/bin
+#     - PREFIX/openfoam-<VERSION>/bin
+#     - PREFIX/openfoam<VERSION>/bin
 #
 #-------------------------------------------------------------------------------
 printHelp() {
@@ -55,7 +53,7 @@ options:
   -list-test        List (existing) directories or files to be checked
   -mode=MODE        Any combination of u(user), g(group), o(other)
   -prefix=DIR       Specify an alternative installation prefix
-  -version=VER      Specify alternative OpenFOAM version (eg, 3.0, 1612, ...)
+  -version=VER      Specify alternative OpenFOAM version (eg, 1712, 1806, ...)
   -csh              Produce 'source FILE' output for a csh eval
   -sh               Produce '. FILE' output for a sh eval
   -csh-verbose      As per -csh, with additional verbosity
@@ -119,41 +117,33 @@ userDir="$HOME/.OpenFOAM"               # Hard-coded as per foamVersion.H
 #-------------------------------------------------------------------------------
 
 # Guess project version or simply get the stem part of the projectDirName.
-# Handle standard and debian naming conventions.
+# Handle standard naming conventions:
+#
+# * OpenFOAM-<version>[-extra...]
+# * openfoam-<version>[-extra...]
+# * openfoam<digits>
 #
 # - projectVersion: update unless already set
 #
 # Helper variables:
 # - dirBase (for reassembling name) == projectDirName without the version
-# - versionNum (debian packaging)
-unset dirBase versionNum
+unset dirBase
 guessVersion()
 {
     local version
 
     case "$projectDirName" in
     (OpenFOAM-* | openfoam-*)
-        # Standard naming: OpenFOAM-<VERSION> or openfoam-<VERSION>
+        # Dashed naming: OpenFOAM-<VERSION> or openfoam-<VERSION>
         dirBase="${projectDirName%%-*}-"
         version="${projectDirName#*-}"
         version="${version%%*-}" # Extra safety, eg openfoam-version-packager
         ;;
 
     (openfoam[0-9]*)
-        # Debian naming: openfoam<VERSION>
+        # Debian-style naming: openfoam<VERSION>
         dirBase="openfoam"
         version="${projectDirName#openfoam}"
-        versionNum="$version"
-
-        # Convert digits version number to decimal delineated
-        case "${#versionNum}" in (2|3|4)
-            version=$(echo "$versionNum" | sed -e 's@\([0-9]\)@\1.@g')
-            version="${version%.}"
-            ;;
-        esac
-
-        # Ignore special treatment if no decimals were inserted.
-        [ "${#version}" -gt "${#versionNum}" ] || unset versionNum
         ;;
 
     (*)
@@ -174,16 +164,11 @@ setVersion()
     # Need dirBase when reassembling projectDirName
     [ -n "$dirBase" ] || guessVersion
 
-    # Debian: update x.y.z -> xyz version
-    if [ -n "$versionNum" ]
-    then
-        versionNum=$(echo "$projectVersion" | sed -e 's@\.@@g')
-    fi
-
-    projectDirName="$dirBase${versionNum:-$projectVersion}"
+    projectDirName="$dirBase$projectVersion"
 }
 
 
+#-------------------------------------------------------------------------------
 optMode=ugo         # Default mode is always 'ugo'
 unset shellOutput verboseOutput
 unset optAll optConfig optList optVersion
-- 
GitLab