Skip to content
Snippets Groups Projects
list-modules 1.91 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/bin/sh
    #------------------------------------------------------------------------------
    # =========                 |
    # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    #  \\    /   O peration     |
    #   \\  /    A nd           | www.openfoam.com
    #    \\/     M anipulation  |
    #------------------------------------------------------------------------------
    #     Copyright (C) 2020 OpenCFD Ltd.
    #------------------------------------------------------------------------------
    
    # SPDX-License-Identifier: (GPL-3.0-or-later)
    
    # Script
    #     list-modules
    #
    # Description
    #     List module directories
    #     - each first-level directory with an Allwmake file
    #
    #------------------------------------------------------------------------------
    cd "${0%/*}" || exit                            # Run from this directory
    
    printHelp() {
        cat<< HELP 1>&2
    
    Usage: ${0##*/} [OPTION]
    options:
      -help             Display help and exit
    
    List module directories - each first-level directory with an Allwmake file
    
    HELP
    
        exit 0  # A clean exit
    }
    
    # Report error and exit
    die()
    {
        exec 1>&2
        echo
        echo "Error encountered:"
        while [ "$#" -ge 1 ]; do echo "    $1"; shift; done
        echo
        echo "See '${0##*/} -help' for usage"
        echo
        exit 1
    }
    
    #------------------------------------------------------------------------------
    
    # Parse options
    while [ "$#" -gt 0 ]
    do
        case "$1" in
        -h | -help*)  # Short help
            printHelp
            ;;
    
        *)
            die "Unknown option/argument: '$1'"
            ;;
        esac
        shift
    done
    
    
    # Each first-level directory with an Allwmake file
    for moduleName in *
    do
        if [ -f "$moduleName/Allwmake" ]
        then
            case "$moduleName" in
            # Skip some directory names
            (build | doc | platform*)
                ;;
            (*)
                echo "$moduleName"
                ;;
            esac
        fi
    done
    
    
    #------------------------------------------------------------------------------