dugout-> program_enhance_shell.dugout
Provide shell behavior and enhancements: Provides Bash variables for compatibility, but other shell-related configurations may also be included.
#!/bin/sh
###############################################################################
## COPYRIGHT (C) 2022-2024 NEW ENTITY OPERATIONS INC. ALL RIGHTS RESERVED
## CREATED: 2022/10/16
## INSTANCE: program_enhance_shell.dugout
## MODIFIED: 2024/01/01
## OVERVIEW: Preset Shell behavior and enhancements: Provides Bash variables
## for compatibility but other shell-related configurations may also be
## included.
## HISTORY: VERSION 1.4
## -> 2022/02/13 (VERSION 1.0) Development
## -> 2023/11/18 (VERSION 1.1)
## -> 2023/12/17 (VERSION 1.2)
## -> 2023/12/20 (VERSION 1.3)
## -> 2024/01/01 (VERSION 1.4) Production
###############################################################################
## stateful logic: Environment
###############################################################################
## bash specific modifiers: 1 = on, 0 = off
export BASH_HISTCONTROL_NOLOG="$CONFIGURATION_BASH_HISTCONTROL_NOLOG"
export BASH_HISTCONTROL_ERASEDUPS="$CONFIGURATION_BASH_HISTCONTROL_ERASEDUPS"
export BASH_HISTCONTROL_GHOST="$CONFIGURATION_BASH_HISTCONTROL_GHOST"
export BASH_HISTCONTROL_IGNOREDUPS="$CONFIGURATION_BASH_HISTCONTROL_IGNOREDUPS"
export BASH_HISTCONTROL_IGNORESPACE="$CONFIGURATION_BASH_HISTCONTROL_IGNORESPACE"
export BASH_HISTCONTROL_IGNOREBOTH="$CONFIGURATION_BASH_HISTCONTROL_IGNOREBOTH"
export BASH_HISTCONTROL_IGNORESPACEANDERASEDUPS="$CONFIGURATION_BASH_HISTCONTROL_IGNORESPACEANDERASEDUPS"
export BASH_NAVIGATION_CONTROL_AUTO_PATH="$CONFIGURATION_BASH_NAVIGATION_CONTROL_AUTO_PATH"
export BASH_NOCLOBBER="$CONFIGURATION_BASH_NOCLOBBER"
export BASH_PERSISTENT_WINDOW_CHECKING="$CONFIGURATION_BASH_PERSISTENT_WINDOW_CHECKING"
export BASH_ZAP_SHELL="$CONFIGURATION_BASH_ZAP_SHELL"
## user-defined int logic
export BASH_ZAP_SHELL_IGNOREEOF="$CONFIGURATION_BASH_ZAP_SHELL_IGNOREEOF"
###############################################################################
## Log congrol
###############################################################################
## These should be tested in isolation before production implementation
if [ "$BASH_HISTCONTROL_NOLOG" -eq 1 ]; then
export HISTSIZE=0
else
:
fi
if [ "$BASH_HISTCONTROL_GHOST" -eq 1 ]; then
export HISTSIZE=0
else
:
fi
###############################################################################
## History control
###############################################################################
if [ "$BASH_HISTCONTROL_ERASEDUPS" -eq 1 ]; then
export HISTCONTROL='erasedups'
else
:
fi
if [ "$BASH_HISTCONTROL_IGNOREDUPS" -eq 1 ]; then
export HISTCONTROL='ignoredups' ;
else
:
fi
if [ "$BASH_HISTCONTROL_IGNORESPACE" -eq 1 ]; then
export HISTCONTROL='ignorespace' ;
else
:
fi
if [ "$BASH_HISTCONTROL_IGNOREBOTH" -eq 1 ]; then
export HISTCONTROL='ignoreboth' ;
else
:
fi
if [ "$BASH_HISTCONTROL_IGNORESPACEANDERASEDUPS" -eq 1 ]; then
export HISTCONTROL='erasedups':'ignorespace' ;
else
:
fi
###############################################################################
## Paths: Not portable, removed
###############################################################################
#if [ "$BASH_NAVIGATION_CONTROL_AUTO_PATH" -eq 1 ]; then
# shopt -s autocd ;
#else
# :
#fi
###############################################################################
## Clobber control
###############################################################################
if [ "$BASH_NOCLOBBER" -eq 1 ]; then
set -o noclobber ;
else
:
fi
###############################################################################
## PWC for size requirements: Not portable, removed
###############################################################################
#if [ "$BASH_PERSISTENT_WINDOW_CHECKING" -eq 1 ]; then
# shopt -s checkwinsize ;
#else
# :
#fi
###############################################################################
## Zap the shell
###############################################################################
if [ "$BASH_ZAP_SHELL" -eq 1 ]; then
export IGNOREEOF="$BASH_ZAP_SHELL_IGNOREEOF"
else
:
fi