declare Version=2.1.7
#==============================================================================
# Copyright and license info is available in the LICENSE file included with
# the Server Deployment Package (SDP), and also available online:
# https://swarm.workshop.perforce.com/projects/perforce-software-sdp/view/main/LICENSE
#------------------------------------------------------------------------------

#==============================================================================
# Standard Environment for bash scripts.

# Use 'set -a' mode to export everything in this file.
set -a

# Require variables to be declared.
set -u

# Set aliaes for common commands.  This is a safety/security precaution to
# help ensure intended commands are run, rather than identically named
# programs elsewhere in the PATH.  Paths may need to adjusted if run on
# different systems.

alias rm=/bin/rm
alias mkdir=/bin/mkdir
alias mkpath="/bin/mkdir -p"
alias printf="/usr/bin/printf"

# Define a temporary directory.
declare P4U_TMPDIR=$(mktemp -d)

# Initialize GARBAGE to contain the $P4U_TMPDIR.  GARBAGE contains a list
# of files and/or directories to be removed (with rm -rf) upon termination
# of the script.
declare GARBAGE="$P4U_TMPDIR"
declare RGARBAGE=""

# Provide a baseline default VERBOSITY.  Scripts may override this to define
# a default for a specific script.  Script users may override this on a per-run
# basis. Scale:
# 1=errors only
# 2=errors and warnings
# 3=normal
# 4=verbose
declare -i VERBOSITY=5

# Store just the name of the current script, useful for logging.
declare THISSCRIPT=${0##*/}

# Store the initial command line in $CMDLINE, useful for logging.
declare CMDLINE="$0 $*"

# Initialize the NO_OP ("no operation") test mode.  If set to 1, scripts
# interpret this to mean "show what would be done, without executing any
# data-affecting commands."
declare -i NO_OP=0

# Globals for runCmd() and run(), containing last command and its exit code.
# runCmd() also stores output in $CMDOUTPUT; run() does not.
declare CMDLAST=""
declare -i CMDEXITCODE=0
declare CMDOUTPUT=""

# Globals for runRemoteCmd() and rrun(), containing last command and its exit code.
# runRemoteCmd() also stores output in $RCMDOUTPUT; rrun() does not.
declare RCMDLAST=""
declare -i RCMDEXITCODE=0
declare RCMDOUTPUT=""

# Header, 79 characters of screen-splitting divider.
declare H="\n==============================================================================="
declare H1="${H}"
declare H2="\n------------------------------------------------------------------------------"

# At the end of this file, return to default behavior, undoing 'set -a' above.
set +a
