Skip to content
Snippets Groups Projects
foamPackBin 2.69 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/bin/sh
    #------------------------------------------------------------------------------
    # =========                 |
    # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    #  \\    /   O peration     |
    
    Mark Olesen's avatar
    Mark Olesen committed
    #   \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
    
    #    \\/     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 2 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, write to the Free Software Foundation,
    #     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
    #
    # Script
    #     foamPackBin <arch> [outputDir]
    #
    # Description
    #     Packs and compresses binary version of OpenFOAM for release
    #
    #------------------------------------------------------------------------------
    
    
    if [ $# -eq 0 ]
    
    Mark Olesen's avatar
    Mark Olesen committed
        echo "Error: architecture type expected, exiting"
        echo
        echo "Usage : ${0##*/} <arch> [outputDir]"
        echo
        exit 1
    
    Mark Olesen's avatar
    Mark Olesen committed
    # base arch (w/o precision, optimization, etc)
    baseArch=$(echo "$arch" | sed -e 's@[DS]P.*$@@')
    
    
    timeStamp=$(date +%Y-%m-%d)
    packDir=$WM_PROJECT-$WM_PROJECT_VERSION
    packFile=${packDir}.${arch}_${timeStamp}.gtgz
    
    # add optional output directory
    if [ -d "$2" ]
    then
    
    Mark Olesen's avatar
    Mark Olesen committed
        packFile="$2/$packFile"
    
    Mark Olesen's avatar
    Mark Olesen committed
        echo "Error: $packFile already exists"
        exit 1
    
    fi
    
    # check for essential directories
    for dir in $packDir $packDir/lib/$arch $packDir/applications/bin/$arch
    do
    
    Mark Olesen's avatar
    Mark Olesen committed
        if [ ! -d $dir ]
        then
            echo "Error: directory $dir does not exist"
            exit 1
        fi
    
    done
    
    # get list of directories
    dirList=$(
    
    Mark Olesen's avatar
    Mark Olesen committed
        for dir in \
            $packDir/lib/$arch \
            $packDir/applications/bin/$arch \
            $packDir/wmake/rules \
    
            $packDir/wmake/bin/$baseArch \
    
    Mark Olesen's avatar
    Mark Olesen committed
            ;
        do
            [ -d $dir ] && echo $dir
        done
    
    Mark Olesen's avatar
    Mark Olesen committed
    echo "Packing $arch ($baseArch) port of $packDir into $packFile"
    
    echo
    
    tar czpf $packFile $dirList
    
    
    Mark Olesen's avatar
    Mark Olesen committed
    if [ $? -eq 0 ]
    
    Mark Olesen's avatar
    Mark Olesen committed
        echo "Finished packing and compressing file $packFile"
    
    Mark Olesen's avatar
    Mark Olesen committed
        echo "Error: failure packing $packFile"
        rm -f $packFile 2>/dev/null
    
    fi
    
    #------------------------------------------------------------------------------