Verified Commit e762436e authored by Alberto Miranda's avatar Alberto Miranda ♨️
Browse files

Add --config-file option to manage-headers.sh

parent 40b4fd8e
Loading
Loading
Loading
Loading
+26 −0
Original line number Original line Diff line number Diff line
Copyright <%=eval(copyright_years[0])[:bsc].join('-')%>, Barcelona Supercomputing Center (BSC), Spain
Copyright <%=eval(copyright_years[0])[:jgu].join('-')%>, Johannes Gutenberg Universitaet Mainz, Germany

This software was partially supported by the
EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu).

This software was partially supported by the
ADA-FS project under the SPPEXA project funded by the DFG.

This file is part of GekkoFS' POSIX interface.

GekkoFS' POSIX interface is free software: you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of the License,
or (at your option) any later version.

GekkoFS' POSIX interface 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 Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with GekkoFS' POSIX interface.  If not, see
<https://www.gnu.org/licenses/>.

SPDX-License-Identifier: LGPL-3.0-or-later
+16 −1
Original line number Original line Diff line number Diff line
@@ -7,4 +7,19 @@ EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu).
This software was partially supported by the
This software was partially supported by the
ADA-FS project under the SPPEXA project funded by the DFG.
ADA-FS project under the SPPEXA project funded by the DFG.


SPDX-License-Identifier: MIT
This file is part of GekkoFS.

GekkoFS 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 3 of the License, or
(at your option) any later version.

GekkoFS 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 GekkoFS.  If not, see <https://www.gnu.org/licenses/>.

SPDX-License-Identifier: GPL-3.0-or-later
+19 −2
Original line number Original line Diff line number Diff line
@@ -28,6 +28,8 @@ The following commands can be used:
Additionally, the following options are supported:
Additionally, the following options are supported:
  -p, --project-dir DIR   The root directory of the project's target files.
  -p, --project-dir DIR   The root directory of the project's target files.
                          Defaults to '\$PWD', the current directory.
                          Defaults to '\$PWD', the current directory.
  -c, --config-file FILE  The configuration file used for this project.
                          Defaults to '\$PWD/project.config'.
  -s, --show-targets      Don't actually execute, just show which targets would
  -s, --show-targets      Don't actually execute, just show which targets would
                          be considered.
                          be considered.
  -n, --dry-run           Don't actually execute, just show what would happen.
  -n, --dry-run           Don't actually execute, just show what would happen.
@@ -44,8 +46,8 @@ function parse_args() {
    # -l is for long options with double dash like --version
    # -l is for long options with double dash like --version
    # the comma separates different long options
    # the comma separates different long options
    options=$(getopt -l \
    options=$(getopt -l \
                "add,remove,help,project-dir:,dry-run,show-targets" \
                "add,remove,help,project-dir:,config-file:,dry-run,show-targets" \
                -o "arhp:ns" -- "$@")
                -o "arhp:c:ns" -- "$@")


    # set --:
    # set --:
    # If no arguments follow this option, then the positional parameters are
    # If no arguments follow this option, then the positional parameters are
@@ -81,6 +83,21 @@ function parse_args() {
                PROJECT_DIR=$(readlink -f "$1")
                PROJECT_DIR=$(readlink -f "$1")
                ;;
                ;;


            -c | --config-file)
                shift
                if [[ -z "$1" ]]; then
                    echo "option '${OPT}' requires an argument"
                    exit 1
                fi

                if ! [[ -f $1 ]]; then
                    echo "file '${1}' does not exist."
                    exit 1
                fi

                PROJECT_CONFIG_FILE=$(readlink -f "$1")
                ;;

            -n | --dry-run)
            -n | --dry-run)
                EXTRA_PROG_ARGS+=( "-n" )
                EXTRA_PROG_ARGS+=( "-n" )
                ;;
                ;;
+53 −0
Original line number Original line Diff line number Diff line
# vi: filetype=sh

################################################################################
## Variables to control how the header is generated
################################################################################

# COPYRIGHT_SOFTWARE="gekkofs"
# COPYRIGHT_DESCRIPTION="an ephemeral distributed file system for HPC applications"
COPYRIGHT_YEARS="{:bsc => [2018, 2021], :jgu => [2015, 2021]}"
COPYRIGHT_LICENSE="gekkofs-posix-template.erb"
COPYRIGHT_SYNTAX="gekkofs-syntax.yml"
COPYRIGHT_WORD_WRAP=80


################################################################################
## Variables to control which files are considered 
## N.B: these are **glob patterns**, NOT regular expressions
################################################################################

INCLUDE_PATTERNS=(
    "*.c"
    "*.h"
    "*.cpp"
    "*.hpp"
    "*.hpp.in"
    "*.am"
    "*.ac"
    "*.py"
    "*.sh"
    "*.mk"
    "*CMakeLists.txt"
    "*.cmake"
    "*.yml"
    "*.erb"
    "*.ini.in"
    "*.py.in"
    "*Dockerfile"
)

EXCLUDE_PATTERNS=(
    "*.git"
    "*.gitlab-ci.yml"
    "*build*"
    "*external?*"
    "*spdlog*"
    "*ctypesgen*"
    "./tests/catch.hpp"
    "*agios.conf"
    "*.diff"
    "*.erb"
    "*.coverage-exclusions"
    "*.project.config"
)