File: sysFunctions

package info (click to toggle)
openfoam 1812%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 220,284 kB
  • sloc: cpp: 1,038,902; sh: 14,536; ansic: 8,240; lex: 657; xml: 387; python: 300; awk: 212; makefile: 94; sed: 88; csh: 3
file content (131 lines) | stat: -rw-r--r-- 3,111 bytes parent folder | download
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
#----------------------------------*-sh-*--------------------------------------
# =========                 |
# \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
#  \\    /   O peration     |
#   \\  /    A nd           | Copyright (C) 2018 OpenCFD Ltd.
#    \\/     M anipulation  |
#------------------------------------------------------------------------------
# License
#     This file is part of OpenFOAM, licensed under GNU General Public License
#     <http://www.gnu.org/licenses/>.
#
# Script
#     sysFunctions
#
# Description
#     General system helper functions
#
# Functions provided
#     isDarwin
#     isNone
#     isSystem
#     isAbsdir, hasAbsdir
#     findFirstFile
#     thirdExtLib
#
# Variables provided
#     extLiba
#     extLibso
#
#------------------------------------------------------------------------------

if [ -z "$WMAKE_SCRIPTS_SYSFUNCTIONS" ]
then
    # Load once, but do not rely on this variable elsewhere
    WMAKE_SCRIPTS_SYSFUNCTIONS=loaded

    # Static library extension. Default=.a
    extLiba=".a"

    # Shared library extension. Default=.so
    case "$(uname -s 2>/dev/null)" in
    Darwin)
        extLibso=".dylib"
        ;;
    *)
        extLibso=".so"
        ;;
    esac


    # True if OS is Darwin.
    # Uses libso extension to cache the value
    # (instead of calling 'uname -s' each time)
    isDarwin()
    {
        test "$extLibso" = ".dylib"
    }


    # True if '$1' begins with '/'
    isAbsdir()
    {
        test "$1" = "/${1#/}"
    }


    # True if '$1' begins with '/' and also exists as a directory
    hasAbsdir()
    {
        test "$1" = "/${1#/}" -a -d "$1"
    }


    # True if '$1' is an empty string or matches "*-none".
    # Eg,
    #    if isNone "$KAHIP_ARCH_PATH" ...
    isNone()
    {
        test -z "$1" -o "${1##*-}" = none
    }


    # True if '$1' matches "*-system"
    # Eg,
    #    if isSystem "$BOOST_ARCH_PATH"
    isSystem()
    {
        test "${1##*-}" = system
    }


    # Check for the existence of any of the files
    # On success, echoes the file found and returns 0, otherwise returns 2
    findFirstFile()
    {
        local file
        for file
        do
            if [ -f "$file" -a -r "$file" ]
            then
                echo "$file"
                return 0
            fi
        done
        return 2
    }

    # Check for existence of file in FOAM_EXT_LIBBIN,
    # but not if either file or FOAM_EXT_LIBBIN are empty or
    # if the FOAM_EXT_LIBBIN is not located in the ThirdParty directory
    #
    # On success, echoes the resolved file and returns 0, otherwise returns 2
    thirdExtLib()
    {
        local file="$FOAM_EXT_LIBBIN/$1"

        if  [ -n "$1" ] && \
            [ -n "$FOAM_EXT_LIBBIN" ] && \
            [ -n "$WM_THIRD_PARTY_DIR" ] && \
            [ -f "$file" -a -r "$file" ] && \
            [ "${FOAM_EXT_LIBBIN#$WM_THIRD_PARTY_DIR}" != "$FOAM_EXT_LIBBIN" ]
        then
            echo "$file"
        else
            return 2
        fi
    }
fi


#------------------------------------------------------------------------------