plugin/osx: shellcheck && shfmt

plugins/osx: dead code removal

No need for gymnastics to determine if variable had been exported priort to modification. If it was, then it still is. See man bash(1).
This commit is contained in:
John D Pell
2021-08-12 12:13:58 -07:00
parent 4abafc55ef
commit 75aabd5d20
2 changed files with 112 additions and 120 deletions

View File

@@ -103,6 +103,7 @@ plugins/available/jump.plugin.bash
plugins/available/less-pretty-cat.plugin.bash plugins/available/less-pretty-cat.plugin.bash
plugins/available/node.plugin.bash plugins/available/node.plugin.bash
plugins/available/nodenv.plugin.bash plugins/available/nodenv.plugin.bash
plugins/available/osx.plugin.bash
plugins/available/percol.plugin.bash plugins/available/percol.plugin.bash
plugins/available/plenv.plugin.bash plugins/available/plenv.plugin.bash
plugins/available/pyenv.plugin.bash plugins/available/pyenv.plugin.bash

View File

@@ -1,23 +1,16 @@
cite about-plugin # shellcheck shell=bash
about-plugin 'osx-specific functions' about-plugin 'osx-specific functions'
# OS X: Open new tabs in same directory # OS X: Open new tabs in same directory
if [[ $OSTYPE == 'darwin'* ]]; then if _is_function update_terminal_cwd; then
if type update_terminal_cwd > /dev/null 2>&1 ; then safe_append_prompt_command 'update_terminal_cwd'
if ! [[ $PROMPT_COMMAND =~ (^|;)update_terminal_cwd($|;) ]] ; then
PROMPT_COMMAND="${PROMPT_COMMAND%;};update_terminal_cwd"
declared="$(declare -p PROMPT_COMMAND)"
[[ "$declared" =~ \ -[aAilrtu]*x[aAilrtu]*\ ]] 2>/dev/null
[[ $? -eq 0 ]] && export PROMPT_COMMAND
fi
fi
fi fi
function tab() { function tab() {
about 'opens a new terminal tab' about 'opens a new terminal tab'
group 'osx' group 'osx'
osascript 2>/dev/null <<EOF osascript 2> /dev/null << EOF
tell application "System Events" tell application "System Events"
tell process "Terminal" to keystroke "t" using command down tell process "Terminal" to keystroke "t" using command down
end end
@@ -30,147 +23,145 @@ EOF
# renames the current os x terminal tab title # renames the current os x terminal tab title
function tabname { function tabname {
printf "\e]1;$1\a" printf '%b' "\e]1;$1\a"
} }
# renames the current os x terminal window title # renames the current os x terminal window title
function winname { function winname {
printf "\e]2;$1\a" printf '%b' "\e]2;$1\a"
} }
# this one switches your os x dock between 2d and 3d # this one switches your os x dock between 2d and 3d
# thanks to savier.zwetschge.org # thanks to savier.zwetschge.org
function dock-switch() { function dock-switch() {
about 'switch dock between 2d and 3d' about 'switch dock between 2d and 3d'
param '1: "2d" or "3d"' param '1: "2d" or "3d"'
example '$ dock-switch 2d' example '$ dock-switch 2d'
group 'osx' group 'osx'
if [[ "$OSTYPE" = 'darwin'* ]]; then case $OSTYPE in
*'darwin'*)
if [[ $1 = 3d ]] ; then case $1 in
defaults write com.apple.dock no-glass -boolean NO 3d)
killall Dock defaults write com.apple.dock no-glass -boolean NO
killall Dock
elif [[ $1 = 2d ]] ; then ;;
defaults write com.apple.dock no-glass -boolean YES 2d)
killall Dock defaults write com.apple.dock no-glass -boolean YES
killall Dock
else ;;
echo "usage:" *)
echo "dock-switch 2d" echo "usage:"
echo "dock-switch 3d." echo "dock-switch 2d"
fi echo "dock-switch 3d."
else ;;
echo "Sorry, this only works on Mac OS X" esac
fi ;;
*)
echo "Sorry, this only works on Mac OS X"
;;
esac
} }
function pman () function pman() {
{ about 'view man documentation in Preview'
about 'view man documentation in Preview' param '1: man page to view'
param '1: man page to view' example '$ pman bash'
example '$ pman bash' group 'osx'
group 'osx' man -t "${1}" | open -fa 'Preview'
man -t "${1}" | open -fa $PREVIEW
} }
function pri () function pri() {
{ about 'display information about Ruby classes, modules, or methods, in Preview'
about 'display information about Ruby classes, modules, or methods, in Preview' param '1: Ruby method, module, or class'
param '1: Ruby method, module, or class' example '$ pri Array'
example '$ pri Array' group 'osx'
group 'osx' ri -T "${1}" | open -fa 'Preview'
ri -T "${1}" | open -fa $PREVIEW
} }
# Download a file and open it in Preview # Download a file and open it in Preview
function prevcurl() { function prevcurl() {
about 'download a file and open it in Preview' about 'download a file and open it in Preview'
param '1: url' param '1: url'
group 'osx' group 'osx'
if [[ ! $OSTYPE = 'darwin'* ]] if [[ ! $OSTYPE = 'darwin'* ]]; then
then echo "This function only works with Mac OS X"
echo "This function only works with Mac OS X" return 1
return 1 fi
fi curl "$*" | open -fa 'Preview'
curl "$*" | open -fa $PREVIEW
} }
function refresh-launchpad() { function refresh-launchpad() {
about 'Reset launchpad layout in macOS' about 'Reset launchpad layout in macOS'
example '$ refresh-launchpad' example '$ refresh-launchpad'
group 'osx' group 'osx'
if [[ "$OSTYPE" = 'darwin'* ]];then if [[ "$OSTYPE" = 'darwin'* ]]; then
defaults write com.apple.dock ResetLaunchPad -bool TRUE defaults write com.apple.dock ResetLaunchPad -bool TRUE
killall Dock killall Dock
else else
echo "Sorry, this only works on Mac OS X" echo "Sorry, this only works on Mac OS X"
fi fi
} }
function list-jvms(){ function list-jvms() {
about 'List java virtual machines and their states in macOS' about 'List java virtual machines and their states in macOS'
example 'list-jvms' example 'list-jvms'
group 'osx' group 'osx'
JVMS_DIR="/Library/Java/JavaVirtualMachines" local JVMS_DIR="/Library/Java/JavaVirtualMachines"
JVMS=( $(ls ${JVMS_DIR}) ) # The following variables are intended to impact the enclosing scope, not local.
JVMS_STATES=() JVMS=("${JVMS_DIR}"/*)
JVMS_STATES=()
# Map state of JVM # Map state of JVM
for (( i = 0; i < ${#JVMS[@]}; i++ )); do for ((i = 0; i < ${#JVMS[@]}; i++)); do
if [[ -f "${JVMS_DIR}/${JVMS[$i]}/Contents/Info.plist" ]]; then if [[ -f "${JVMS[i]}/Contents/Info.plist" ]]; then
JVMS_STATES[${i}]=enabled JVMS_STATES[i]=enabled
else else
JVMS_STATES[${i}]=disabled JVMS_STATES[i]=disabled
fi fi
echo "${i} ${JVMS[$i]} ${JVMS_STATES[$i]}" printf '%s\t%s\t%s\n' "${i}" "${JVMS[i]##*/}" "${JVMS_STATES[i]}"
done done
} }
function pick-default-jvm(){ function pick-default-jvm() {
about 'Pick the default Java Virtual Machines in system-wide scope in macOS' about 'Pick the default Java Virtual Machines in system-wide scope in macOS'
example 'pick-default-jvm' example 'pick-default-jvm'
# Call function for listing # Declare variables
list-jvms local JVMS JVMS_STATES
local DEFAULT_JVM_DIR DEFAULT_JVM OPTION
# Declare variables # Call function for listing
local DEFAULT_JVM_DIR="" list-jvms
local DEFAULT_JVM=""
local OPTION=""
# OPTION for default jdk and set variables # OPTION for default jdk and set variables
while [[ ! "$OPTION" =~ ^[0-9]+$ || OPTION -ge "${#JVMS[@]}" ]]; do while [[ ! "$OPTION" =~ ^[0-9]+$ || OPTION -ge "${#JVMS[@]}" ]]; do
read -p "Enter Default JVM: " OPTION read -rp "Enter Default JVM: " OPTION
if [[ ! "$OPTION" =~ ^[0-9]+$ ]]; then if [[ ! "$OPTION" =~ ^[0-9]+$ ]]; then
echo "Please enter a number" echo "Please enter a number"
fi fi
if [[ OPTION -ge "${#JVMS[@]}" ]]; then if [[ OPTION -ge "${#JVMS[@]}" ]]; then
echo "Please select one of the displayed JVMs" echo "Please select one of the displayed JVMs"
fi fi
done done
DEFAULT_JVM_DIR="${JVMS_DIR}/${JVMS[$OPTION]}" DEFAULT_JVM_DIR="${JVMS[OPTION]}"
DEFAULT_JVM="${JVMS[$OPTION]}" DEFAULT_JVM="${JVMS[OPTION]##*/}"
# Disable all jdk # Disable all jdk
for (( i = 0; i < ${#JVMS[@]}; i++ )); do for ((i = 0; i < ${#JVMS[@]}; i++)); do
if [[ -f "${JVMS_DIR}/${JVMS[$i]}/Contents/Info.plist" ]]; then if [[ "${JVMS[i]}" != "${DEFAULT_JVM_DIR}" && -f "${JVMS[i]}/Contents/Info.plist" ]]; then
sudo mv "${JVMS_DIR}/${JVMS[$i]}/Contents/Info.plist" "${JVMS_DIR}/${JVMS[$i]}/Contents/Info.plist.disable" sudo mv "${JVMS[i]}/Contents/Info.plist" "${JVMS[i]}/Contents/Info.plist.disable"
fi fi
done done
# Enable default jdk # Enable default jdk
if [[ -f "${DEFAULT_JVM_DIR}/Contents/Info.plist.disable" ]]; then if [[ -f "${DEFAULT_JVM_DIR}/Contents/Info.plist.disable" ]]; then
sudo mv "${DEFAULT_JVM_DIR}/Contents/Info.plist.disable" "${DEFAULT_JVM_DIR}/Contents/Info.plist" sudo mv -vn "${DEFAULT_JVM_DIR}/Contents/Info.plist.disable" "${DEFAULT_JVM_DIR}/Contents/Info.plist" \
echo "Enabled ${DEFAULT_JVM} as default JVM" && echo "Enabled ${DEFAULT_JVM} as default JVM"
fi fi
} }
# Make this backwards compatible
alias pcurl='prevcurl'