# SPDX-License-Identifier: AGPL-3.0-or-later
# this gets sourced. shebang is just for file mode detection
+
# Use source ~/.bashrc instead of doing bash -l when running a script
# so this can set extdebug and avoid the bash debugger.
if [[ -s /a/bin/errhandle/err ]]; then
CDPATH=.
-set -o pipefail
-
# remove all aliases. aliases provided by the system tend to get in the way,
# for example, error happens if I try to define a function the same name as an alias
unalias -a
fi
-
-# history number. History expansion is good.
-PS4='$LINENO+ '
-# history file size limit, set to unlimited.
-# this needs to be different from the default because
-# default HISTFILESIZE is 500 and could clobber our history
-HISTFILESIZE=
-# max commands 1 session can append/read from history
-HISTSIZE=1000000
-# the time format display when doing the history command
-# also, setting this makes the history file record time
-# of each command as seconds from the epoch
-HISTTIMEFORMAT="%Y-%m-%d %I:%M %p "
-# consecutive duplicate lines dont go in history
-HISTCONTROL=ignoredups
-# works in addition to HISTCONTROL to do more flexible things
-# it could also do the same things as HISTCONTROL and thus replace it,
-# but meh. dunno why, but just " *" does glob expansion, so use [ ] to avoid it.
-HISTIGNORE='pass *:[ ]*:otp *:oathtool *'
-
export BC_LINE_LENGTH=0
+# ansible option
export PROFILE_TASKS_TASK_OUTPUT_LIMIT=100
# note, if I use a machine I dont want files readable by all users, set
ccat () { # config cat. see a config without extra lines.
- grep '^\s*[^;[:space:]#]' "$@"
+ grep '^\s*[^;[:space:]#]' "$@" || [[ $? == 1 ]]
}
done
}
-
ediff() {
[[ ${#@} == 2 ]] || { echo "error: ediff requires 2 arguments"; return 1; }
emacs --eval "(ediff-files \"$1\" \"$2\")"
k() { # history search
- grep -P --binary-files=text "$@" ${HISTFILE:-~/.bash_history} | tail -n 80;
+ grep -P --binary-files=text "$@" ${HISTFILE:-~/.bash_history} | tail -n 80 || [[ $? == 1 ]];
}
ks() { # history search
- grep -P --binary-files=text "$@" ${HISTFILE:-~/.bash_history} | uniq;
+ grep -P --binary-files=text "$@" ${HISTFILE:-~/.bash_history} | uniq || [[ $? == 1 ]];
}
c $(mktemp -d)
pkg=$1
# shellcheck disable=SC2012
- cached=$(ls -t /var/cache/apt/archives/$pkg* | tail -n1 2>/dev/null)
+ cached=$(ls -t /var/cache/apt/archives/$pkg* | tail -n1 2>/dev/null) ||:
if [[ $cached ]]; then
cp $cached .
else
# final grep is because some commands tend to have a lot of trailing spaces
y=$(echo "$x" | grep -iP "$@" | grep -o '.*[^ ]') ||:
if [[ $y ]]; then
- echo "$x" | head -n 1
+ echo "$x" | head -n 1 || [[ $? == 141 ]]
echo "$y"
fi
}
# shellcheck disable=SC2120
r() {
- history -a # save history
+ if [[ $HISTFILE ]]; then
+ history -a # save history
+ fi
trap ERR # this avoids a segfault
exit ${1:0}
# i had this redir, not sure why
local ps_char ps_color
unset IFS
- history -a # save history
+ if [[ $HISTFILE ]]; then
+ history -a # save history
+ fi
+
+ if [[ $jr_pid ]]; then
+ if [[ -e /proc/$jr_pid ]]; then
+ kill $jr_pid
+ fi
+ unset jr_pid
+ fi
case $return in
0) ps_color="$term_purple"
# shellcheck disable=SC1090
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
+# I had this idea to start a bash shell which would run an initial
+# command passed through this env variable, then continue on
+# interactively. But the use case I had in mind went away.
+#
+# if [[ $MY_INIT_CMD ]]; then
+# "${MY_INIT_CMD[@]}"
+# unset MY_INIT_CMD
+# fi
# ensure no bad programs appending to this file will have an affect
return 0