46 lines
1.1 KiB
Bash
Executable File
46 lines
1.1 KiB
Bash
Executable File
#! /bin/bash
|
|
#
|
|
# ps1test
|
|
# Tests your bash PS1
|
|
# Copyright (C) 2020 Vintage Salt <rehashedsalt@cock.li>
|
|
#
|
|
# Distributed under terms of the MIT license.
|
|
#
|
|
|
|
main() {
|
|
. ~/.profile
|
|
. ~/.bashrc
|
|
printf "Default:\n"
|
|
printps1 # Test a default ps1
|
|
false || printps1 # Test after command failure
|
|
PWD=~/Documents printps1 # Test in a subdir of ~
|
|
PWD=/tmp printps1 # Test in a world-writeable dir
|
|
PWD=/usr/local printps1 # Test in unwriteable dir
|
|
PWD=/dir/that/doesnt/exist printps1 # Test in dir that doesn't exist
|
|
printf "\nDefault, different user:\n"
|
|
USER=notme printps1 # Test as another user
|
|
printf "\nSame user, different machine:\n"
|
|
SSH_CLIENT=notme HOSTNAME=notme printps1 # Test over fake SSH
|
|
printf "\nForeign machine, foreign user:\n"
|
|
USER=notme SSH_CLIENT=notme HOSTNAME=notme printps1 # Test both of the above
|
|
}
|
|
|
|
hostname() {
|
|
# We have this little stub here to intercept calls to hostname
|
|
echo "$HOSTNAME"
|
|
}
|
|
|
|
printps1() {
|
|
# Print the PS1, with some substitutions
|
|
"$PROMPT_COMMAND" > /dev/null 2>&1
|
|
PS1="${PS1//\\[/}"
|
|
PS1="${PS1//\\]/}"
|
|
PS1="${PS1//\\w/$PWD}"
|
|
PS1="${PS1//$HOME/\~}"
|
|
printf "\t$PS1\n"
|
|
}
|
|
|
|
|
|
main "$@"
|
|
|