Skip to content
Snippets Groups Projects
Select Git revision
  • bebcad16c86ebb77f4c9eb93a73b885cf4a01242
  • master default protected
  • L2SS-1914-fix_job_dispatch
  • TMSS-3170
  • TMSS-3167
  • TMSS-3161
  • TMSS-3158-Front-End-Only-Allow-Changing-Again
  • TMSS-3133
  • TMSS-3319-Fix-Templates
  • test-fix-deploy
  • TMSS-3134
  • TMSS-2872
  • defer-state
  • add-custom-monitoring-points
  • TMSS-3101-Front-End-Only
  • TMSS-984-choices
  • SDC-1400-Front-End-Only
  • TMSS-3079-PII
  • TMSS-2936
  • check-for-max-244-subbands
  • TMSS-2927---Front-End-Only-PXII
  • Before-Remove-TMSS
  • LOFAR-Release-4_4_318 protected
  • LOFAR-Release-4_4_317 protected
  • LOFAR-Release-4_4_316 protected
  • LOFAR-Release-4_4_315 protected
  • LOFAR-Release-4_4_314 protected
  • LOFAR-Release-4_4_313 protected
  • LOFAR-Release-4_4_312 protected
  • LOFAR-Release-4_4_311 protected
  • LOFAR-Release-4_4_310 protected
  • LOFAR-Release-4_4_309 protected
  • LOFAR-Release-4_4_308 protected
  • LOFAR-Release-4_4_307 protected
  • LOFAR-Release-4_4_306 protected
  • LOFAR-Release-4_4_304 protected
  • LOFAR-Release-4_4_303 protected
  • LOFAR-Release-4_4_302 protected
  • LOFAR-Release-4_4_301 protected
  • LOFAR-Release-4_4_300 protected
  • LOFAR-Release-4_4_299 protected
41 results

create_add_notifications.sql.py

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    generic.sh 6.55 KiB
    ###############################################################################
    #
    # Copyright 2023 Stichting Nederlandse Wetenschappelijk Onderzoek Instituten
    # ASTRON Netherlands Institute for Radio Astronomy
    # JIVE (Joint Institute for VLBI in Europe)
    # 
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    # 
    #    http://www.apache.org/licenses/LICENSE-2.0
    # 
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License. 
    #
    ###############################################################################
    
    # This file contains a collection of convenience functions and definitions.
    #
    # automatically export to subsequent commands (-a)
    set -a
    #exits on any error in pipeline, not just the last error
    set -o pipefail
    
    # only set variables if we didn't set them before
    if [ "${sdptr_generic_read:-not_set}" = "not_set" ]; then
    
    # display a (colourfull ...) error message. 
    #    the script will be terminated immediately
    # exit with <errorcode> (default=1)
    # usage:  sdptr_error <caller> <message> [<errorcode>]
    sdptr_error() {
        caller=${1:-""}
        msg=${2:-""}
        exitcode=${3:-1}
        if [ -z "${caller}" -o -z "${msg}" ]; then
            echo "usage: sdptr_error <caller's name> <message> [<exitcode>]"
            exit 1
        fi
        caller=$(basename ${caller} | tr [a-z] [A-Z])
        echo -n "$(tput setaf 6)$(tput bold)[${caller}] "
        echo -e "$(tput setaf 1)ERROR - ${msg}. $(tput sgr0)"
        # Exit if $NO_EXIT does not exist, else only return
        if [ -z ${NO_EXIT:-""} ]; then exit ${exitcode}; else return 1; fi
    }
    
    # Non-exiting version of sdptr_error in case we wish to accumulate errors and
    # call an exiting sdptr_error after displaying accumulated errors.
    sdptr_error_noexit() {
        caller=${1:-""}
        msg=${2:-""}
        if [ -z "${caller}" -o -z "${msg}" ]; then
            echo "usage: sdptr_error <caller's name> <message>"
            exit 1
        fi
        caller=$(basename ${caller} | tr [a-z] [A-Z])
        echo -n "$(tput setaf 6)$(tput bold)[${caller}] "
        echo -e "$(tput setaf 1)ERROR - ${msg}.$(tput sgr0)"
    }
    
    sdptr_warning() {
        caller=${1:-""}
        msg=${2:-""}
        if [ -z "${caller}" -o -z "${msg}" ]; then
            echo "usage: sdptr_warning <caller's name> <message>"
            exit 1
        fi
        caller=$(basename ${caller} | tr [a-z] [A-Z])
        echo -n "$(tput setaf 6)$(tput bold)[${caller}] "
        echo -e "$(tput setaf 3)WARNING - ${msg}.$(tput sgr0)"
        return 0 
    }
    
    # usage:  sdptr_info <caller> <message>
    sdptr_info() {
        caller=${1:-""}
        shift
        if [ -z "${caller}" -o -z "$*" ]; then
            echo "usage: sdptr_info <scriptname> <msg1> [<msg2> .. <msgN>]"
            exit 1
        fi
        caller=$(basename ${caller} | tr [a-z] [A-Z])
        echo -e "$(tput setaf 6)$(tput bold)[${caller}] $* $(tput sgr0)"
        return 0
    }
    
    # usage:
    #   sdptr_exec <calling script> [OPTS] <command to run>
    #  OPTS:
    #     [msg=<override defaultmsg>]
    #           msg=no => suppress displaying of messages
    #                     if command fails, do display the
    #                     command that failed
    #     [expect=<expected exit code>] (default: 0)
    # exits with same exitcode as the command
    sdptr_exec() {
        # step one: extract calling scriptname, which is $1
        caller=$1; shift
        # anything left is supposedly the command to exec + args
        # prepare the "msg" to display
        msg=
        output=
        expect=0
        # unless someone gave msg="...." as orginal 2nd arg
        #  (and now, since the first "shift", it is 1st)
        for ac ; do
            case ${ac} in 
                output=*)
                    # well allrighty then, override default msg 
                    output=$(echo "${ac}" | sed 's/^output=//')
                    shift
                    ;;
                msg=*)
                    # well allrighty then, override default msg 
                    msg=$(echo "${ac}" | sed 's/^msg=//')
                    shift
                    ;;
                expect=*)
                    expect=$(echo "${ac}" | sed 's/^expect=//')
                    shift
                    ;;
                * )
                    # first non-option argument; stop for loop!
                    break
                    ;;
            esac
        done
        if [ -z "${msg}" ]; then
            msg="Running \"$*\""
        fi
    
        # show usr what we're up to
        if [ "${msg}" != "no" ]; then
            sdptr_info ${caller} "${msg}"
        fi
    
        # remember if errexit is switched on because we have to disable it
        exit_on_err=true
        if [ "${SHELLOPTS//*errexit*}" == "$SHELLOPTS" ]; then
            exit_on_err=false
        fi
        set +e
    
        # and let's actually do it!
        if [ "${output}" = "no" ]; then
          $* >/dev/null 2>/dev/null
        else
          $*
        fi
        exitcode=$?
    
        # switch errexit on if is was on when we were called (no side effects)
        if [ $exit_on_err ]; then
            set -e
        fi
        echo "exitcode=${exitcode}"
        # Finally check if the exitcode of the command we executed is the expected one.
        if [ "${exitcode}" -ne "${expect}" ]; then
            if [ "${msg}" == "no" ]; then
                echo "****** Failed command ****"
                echo $*
                exit ${exitcode}
            fi
            sdptr_error ${caller} "\"${msg}\" failed" $?
        fi
    }
    
    # format the date in a specific form
    # if changing the format, make sure
    # that dateindent has the same length
    # again (dateindent used for pretty
    # printing multiline stuff without
    # having to print the date in every line)
    date="/bin/date +'%d %m %Y %T'"
    # format    dd mm yyyy HH:MM:ss
    dateindent='                   '
    
    #
    # Some generic, often used functions
    #
    
    # return the current date/time in a
    # predefined format - see above
    # Use eg as
    # echo "`timestamp` Aaargh - Failed to clobber!"
    sdptr_timestamp() {
    	echo "${date}"
    }
    
    # Define function to add directories to a given environment variable
    #     args: name_of_env_var new_path [new_path ...]
    # Directories are only added when they exist.
    sdptr_pathadd() {
        for new_dir in ${@:2}
        do
            eval dir_to_add=$(echo ${new_dir})
            if [ ! -d ${dir_to_add} ]; then
                echo "WARNING: directory ${dir_to_add} NOT added to $1 because directory doesn't exist!"
            else
                if ! echo ${!1} | grep -E -q "(^|:)$dir_to_add($|:)" ; then
                    eval export ${1}=${1:+${!1#:}:}${dir_to_add}
                fi
            fi
        done
        unset dir_to_add new_dir
    }
    
    # Mark the fact that we read this file and end the guarded part
    sdptr_generic_read="yes"
    fi