Format shell scripts with shfmt

This commit is contained in:
2020-05-23 21:36:17 +01:00
parent a34e2d370e
commit cdef65ae53
30 changed files with 219 additions and 211 deletions

View File

@@ -5,7 +5,6 @@ set -e
PACKAGE_LIST_CMD="brew cask list"
PACKAGE_INSTALL_CMD="brew cask install"
#
# Package list
#
@@ -136,7 +135,6 @@ PERSONAL_PKGS=(
yakyak
)
#
# Main
#
@@ -155,7 +153,6 @@ main() {
fi
}
#
# The rest...
#

View File

@@ -5,7 +5,6 @@ set -e
PACKAGE_LIST_CMD="brew list"
PACKAGE_INSTALL_CMD="brew install"
#
# Package list
#
@@ -63,7 +62,6 @@ PERSONAL_PKGS=(
"mkvtoolnix --with-qt"
)
#
# Main
#
@@ -78,7 +76,6 @@ main() {
fi
}
#
# The rest...
#

View File

@@ -31,11 +31,10 @@ if [ -d "$app_path" ]; then
exit 1
fi
# Various paths used when creating the app.
resource_dir="${app_path}/Contents/Resources"
exec_dir="${app_path}/Contents/MacOS"
exec_file="${exec_dir}/${name//[[:space:]]}"
exec_file="${exec_dir}/${name//[[:space:]]/}"
plist_file="${app_path}/Contents/Info.plist"
app_support="\${HOME}/Library/Application Support"
@@ -46,10 +45,10 @@ bundle_identifier="me.jimeh.chrome-ssb.${name}"
mkdir -p "$resource_dir" "$exec_dir"
# convert the icon and copy into Resources
if [ -f "$icon" ] ; then
if [ -f "$icon" ]; then
sips -s format tiff "$icon" \
--out "${resource_dir}/icon.tiff" \
--resampleWidth 128 >& /dev/null
--resampleWidth 128 >&/dev/null
tiff2icns -noLarge "${resource_dir}/icon.tiff" >&/dev/null
if [ -f "${resource_dir}/icon.tiff" ]; then
@@ -58,7 +57,7 @@ if [ -f "$icon" ] ; then
fi
# Create the executable.
cat > "$exec_file" <<EOF
cat > "$exec_file" << EOF
#!/bin/sh
mkdir -p "${profile_dir}"
exec "${chrome_path}" \\
@@ -70,7 +69,7 @@ EOF
chmod +x "$exec_file"
# Create the Info.plist.
cat > "$plist_file" <<EOF
cat > "$plist_file" << EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" “http://www.apple.com/DTDs/PropertyList-1.0.dtd”>
<plist version=”1.0″>

View File

@@ -1,13 +1,13 @@
#! /usr/bin/env bash
set -e
abs_dirname () {
abs_dirname() {
local path="$1"
local cwd
cwd="$(pwd)"
while [ -n "$path" ]; do
cd "${path%/*}" 2>/dev/null
cd "${path%/*}" 2> /dev/null
local name="${path##*/}"
path="$(resolve_link "$name" || true)"
done
@@ -16,16 +16,16 @@ abs_dirname () {
cd "$cwd"
}
abs_path () {
abs_path() {
local path="$1"
echo "$(cd "$(abs_dirname "$path")" && pwd)/$(basename "$path")"
}
resolve_link () {
resolve_link() {
$(type -p greadlink readlink | head -1) "$1"
}
resolve_dest () {
resolve_dest() {
local dest="$1"
if [ -z "$dest" ]; then
@@ -42,7 +42,7 @@ resolve_dest () {
echo "$dest"
}
resolve_dest_dir () {
resolve_dest_dir() {
local dest="$1"
local dir
@@ -55,7 +55,7 @@ resolve_dest_dir () {
echo "$dir"
}
help () {
help() {
echo "usage: docker-volume-backup <volume> [<output-filename>]"
echo ""
echo "Backs up contents of a Docker volume to a gzipped tar archive."
@@ -66,7 +66,7 @@ help () {
echo " Defaults to: ./<volume>_<date>_<time>.tar.gz"
}
main () {
main() {
local volname="$1"
local dest="$2"
local dest_dir
@@ -76,7 +76,7 @@ main () {
exit 1
fi
if ! docker volume inspect "$volname" &>/dev/null; then
if ! docker volume inspect "$volname" &> /dev/null; then
echo "ERROR: Volume \"${volname}\" does not exist." 1>&2
exit 1
fi

View File

@@ -1,13 +1,13 @@
#! /usr/bin/env bash
set -e
abs_dirname () {
abs_dirname() {
local path="$1"
local cwd
cwd="$(pwd)"
while [ -n "$path" ]; do
cd "${path%/*}" 2>/dev/null
cd "${path%/*}" 2> /dev/null
local name="${path##*/}"
path="$(resolve_link "$name" || true)"
done
@@ -16,12 +16,12 @@ abs_dirname () {
cd "$cwd"
}
abs_path () {
abs_path() {
local path="$1"
echo "$(cd "$(abs_dirname "$path")" && pwd)/$(basename "$path")"
}
resolve_link () {
resolve_link() {
$(type -p greadlink readlink | head -1) "$1"
}
@@ -38,7 +38,7 @@ resolve_archive() {
echo "$archive"
}
resolve_volname () {
resolve_volname() {
local archive="$1"
local file
local dir
@@ -50,10 +50,10 @@ resolve_volname () {
--volume "${dir}:/source" \
alpine:latest \
sh -c "tar --exclude=\"*/*/*\" -tzf \"/source/${file}\" \
| grep -v '^[^/]\+/[^/]\+$' | sed s'/.$//'" 2>/dev/null
| grep -v '^[^/]\+/[^/]\+$' | sed s'/.$//'" 2> /dev/null
}
help () {
help() {
echo "usage: docker-volume-restore <archive> [<volume-name>]"
echo ""
echo "Restores contents from a *.tar.gz archive to a Docker volume."
@@ -66,7 +66,7 @@ help () {
echo " top-level directory in the archive."
}
main () {
main() {
local archive="$1"
local volname="$2"
local archive_volname
@@ -92,13 +92,13 @@ main () {
volname="$archive_volname"
fi
if docker volume inspect "$volname" &>/dev/null; then
if docker volume inspect "$volname" &> /dev/null; then
echo "ERROR: Volume \"${volname}\" already exists." 1>&2
exit 1
fi
echo "Restoring volume ${volume} from: ${archive_file}"
docker volume create "$volname"
echo "Restoring volume ${volname} from: ${archive_file}"
docker volume create "${volname}"
docker run --rm \
--volume "${volname}:/target" \
--volume "${archive_dir}:/source" \

View File

@@ -15,20 +15,19 @@ if [ -f "/Applications/Emacs.app/Contents/MacOS/bin/emacsclient" ]; then
EMACSCLIENT="/Applications/Emacs.app/Contents/MacOS/bin/emacsclient"
fi
# Functions
start () {
EMACS_GUI_SERVER=1 env $EMACS \
start() {
EMACS_GUI_SERVER=1 env "$EMACS" \
--eval "(setq server-socket-dir \"$SOCKET_DIR\")" --daemon
}
stop () {
stop() {
env $EMACSCLIENT -s "$SOCKET_FILE" --eval "(kill-emacs)"
}
status () {
status() {
echo -n 'Emacs GUI Server... '
! result="$(eval $EMACSCLIENT -s "$SOCKET_FILE" --eval \"\(print \'OK\)\" 2>/dev/null)"
! result="$(eval $EMACSCLIENT -s "$SOCKET_FILE" --eval \"\(print \'OK\)\" 2> /dev/null)"
if [[ $result == "OK" ]]; then
echo 'RUNNING'
else

View File

@@ -7,9 +7,8 @@
# content, at your own risk of course :) --jimeh
#
padlen=13
ipaddress=$1
ipaddress="$1"
if [[ "$1" == "--raw" ]] || [[ "$1" == "-r" ]]; then
padlen=0
@@ -19,7 +18,7 @@ elif [[ "$2" == "--raw" ]] || [[ "$2" == "-r" ]]; then
fi
case "$1" in
"-h" | "--help" )
"-h" | "--help")
echo "usage: geoiptool [<ipaddress>]"
echo ""
echo "Options:"
@@ -28,8 +27,8 @@ case "$1" in
echo "Look up details for given IP address via http://www.geoiptool.com/. If no IP"
echo "address is given, your own public IP will be used instead."
;;
* )
curl -s "http://www.geoiptool.com/en/?IP=${ipaddress}" -H "User-Agent: " | \
*)
curl -s "http://www.geoiptool.com/en/?IP=${ipaddress}" -H "User-Agent: " |
awk -F '(</?[^>]+>)+' \
"/Host Name/,/Latitude/ {
if (/:/) {

View File

@@ -10,7 +10,7 @@ main() {
commits="$(git rev-list "$ref")"
for commit in $commits; do
files="$(git diff-tree --no-commit-id --name-only -r $commit)"
files="$(git diff-tree --no-commit-id --name-only -r "$commit")"
for file in $files; do
echo "${commit}: $file"
done

44
bin/hr
View File

@@ -4,43 +4,39 @@
#
# Copyright (c) 2013 Gil Gonçalves
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of
# this software and associated documentation files (the "Software"), to deal in
# the Software without restriction, including without limitation the rights to
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
# the Software, and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
function hr {
for i in $(seq 1 $(tput cols));
do
echo -n "$1";
function hr() {
for i in $(seq 1 "$(tput cols)"); do
echo -n "$1"
done
echo ""
}
if [[ -n "$1" ]]; then
space_string="$1"
string_size="${#space_string}"
if [[ -n $1 ]]; then
space_string=$1
string_size=${#space_string};
for char_index in $(seq 0 $(expr ${string_size} - 1));
do
hr ${space_string:char_index:1}
for char_index in $(seq 0 "$(expr "${string_size}" - 1)"); do
hr "${space_string:char_index:1}"
done
else
hr "="
fi

View File

@@ -46,25 +46,25 @@ OPT_ALL=""
parse-arguments() {
while getopts ":p:e:w:bah" opt; do
case ${opt} in
p )
p)
OPT_PROC="$OPTARG"
;;
e )
e)
OPT_BIN="$OPTARG"
;;
w )
w)
OPT_WIN="$OPTARG"
;;
b )
b)
OPT_BRING="1"
;;
a )
a)
OPT_ALL="1"
;;
h )
h)
show-help
;;
\? )
\?)
error-help "Invalid option: -${OPTARG}\n" 1>&2
exit 1
;;
@@ -81,7 +81,7 @@ parse-arguments() {
OPT_BIN="$OPT_PROC"
fi
if ! command -v "$OPT_BIN" &>/dev/null; then
if ! command -v "$OPT_BIN" &> /dev/null; then
error "\"${OPT_BIN}\" does not seem to be a valid executable."
exit 2
fi

View File

@@ -3,7 +3,7 @@
# Parse confx files and generate the conf files.
for file in $HOME/.logrotate.d/*.confx; do
content="$(eval "echo \"$(cat "$file")\"")"
echo "$content" > ${file/%.confx/.conf}
echo "$content" > "${file/%.confx/.conf}"
done
# Run logrorate like normal against conf files.

View File

@@ -1,6 +1,6 @@
#! /usr/bin/env bash
if bundle check &>/dev/null && (bundle list | grep rubocop &>/dev/null); then
if bundle check &> /dev/null && (bundle list | grep rubocop &> /dev/null); then
exec bundle exec rubocop "$@"
else
exec rubocop "$@"

View File

@@ -1,24 +1,28 @@
#! /usr/bin/env bash
if [ -z $1 ]; then
if [ -z "$1" ]; then
echo "usage: smart-health-check <device>"
exit 1
fi
trim() {
local string="$@"
local string="$*"
string="${string#"${string%%[![:space:]]*}"}"
string="${string%"${string##*[![:space:]]}"}"
echo -n "$string"
}
check-status() {
local raw_status="$(smartctl -H $1)"
local status="$(echo "$raw_status" | grep "^SMART overall-health")"
local device="$1"
local raw_status
local status
raw_status="$(smartctl -H "$device")"
status="$(echo "$raw_status" | grep "^SMART overall-health")"
if [[ "$(trim "$status")" != *"PASSED" ]]; then
echo "$(tput setaf 1)SMART Status: FAIL:$(tput sgr0)" \
"smartctl -H $1:"
"smartctl -H ${device}:"
echo ""
echo "$raw_status"
exit 3
@@ -26,23 +30,27 @@ check-status() {
}
check-attributes() {
local device="$1"
local attr
local fail=0
local raw_status="$(smartctl -A $1)"
local report="$(echo "$raw_status" | grep "^ID# ")"
local raw_status
local report
raw_status="$(smartctl -A "$device")"
report="$(echo "$raw_status" | grep "^ID# ")"
for id in 1 5 10 196 197 198; do
attr="$(echo "$raw_status" | grep "^\s*${id}\s")"
if [ -n "$(trim "$attr")" ] && [[ "$(trim "$attr")" != *" 0" ]]; then
fail=1
report="$report\n$attr"
report="${report}\n${attr}"
fi
done
if [ $fail != 0 ]; then
echo "$(tput setaf 2)SMART Status: PASSED:$(tput sgr0)" \
"$(tput setaf 1)- may FAIL soon:$(tput sgr0)" \
"smartctl -A $1:"
"smartctl -A ${device}:"
echo ""
echo -e "$report"
exit 2
@@ -50,10 +58,11 @@ check-attributes() {
}
main() {
check-status $1
check-attributes $1
local device="$1"
check-status "$device"
check-attributes "$device"
echo "SMART Status: $(tput setaf 2)PASSED$(tput sgr0)"
}
main $@

View File

@@ -3,6 +3,6 @@
count=1
echo "====> Attempt $count"
while "$@"; do
(( count++ ))
((count++))
echo "====> Attempt $count"
done

View File

@@ -50,8 +50,8 @@ main() {
formulas_list="$(printf '%s\n' "${formulas[@]}" | sort)"
count="$(
comm -13 <(echo "$pinned_list") <(echo "$formulas_list") \
| grep -c '[^[:space:]]'
comm -13 <(echo "$pinned_list") <(echo "$formulas_list") |
grep -c '[^[:space:]]'
)"
echo ":beer:↑${count} | dropdown=false"

View File

@@ -36,12 +36,11 @@ SYMLINKS=(
zshrc
)
#
# Initial Setup
#
if [ -n "${BASH_SOURCE[0]}" ] && [ -f "${BASH_SOURCE[0]}" ] ; then
if [ -n "${BASH_SOURCE[0]}" ] && [ -f "${BASH_SOURCE[0]}" ]; then
ROOT_PATH=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
elif [ -n "$0" ] && [ -f "$0" ]; then
ROOT_PATH=$(cd "$(dirname "$0")" && pwd)
@@ -50,12 +49,11 @@ else
exit 1
fi
#
# Main Functions
#
install_symlinks () {
install_symlinks() {
# Symlink dotfiles root
symlink "$ROOT_PATH" "$TARGET/$DOTFILES_LINK"
@@ -70,12 +68,12 @@ install_symlinks () {
done
}
install_private () {
install_private() {
git_clone "git@github.com:jimeh/dotfiles-private.git" \
"$ROOT_PATH/$PRIVATE_PATH"
}
install_launch_agents () {
install_launch_agents() {
mkdir -p "$HOME/Library/LaunchAgents"
for file in $ROOT_PATH/launch_agents/*.plist; do
symlink "$file" "$HOME/Library/LaunchAgents/$(basename "$file")"
@@ -87,11 +85,11 @@ install_launch_agents () {
fi
}
install_homebrew () {
install_homebrew() {
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
}
install_rbenv () {
install_rbenv() {
git_clone 'https://github.com/rbenv/rbenv.git' "$TARGET/.rbenv"
git_clone 'https://github.com/rbenv/ruby-build.git' "$TARGET/.rbenv/plugins/ruby-build"
}
@@ -102,7 +100,6 @@ install_emacs_config() {
git_clone 'git@github.com:jimeh/.emacs.d.git' "$TARGET/.emacs.d"
}
#
# Helper functions
#
@@ -127,7 +124,7 @@ symlink() {
fi
}
git_clone () {
git_clone() {
local clone_url="$1"
local target="$2"
@@ -139,28 +136,27 @@ git_clone () {
fi
}
#
# Argument Handling
#
case "$1" in
symlinks|links)
symlinks | links)
install_symlinks
;;
emacs-config|emacs)
emacs-config | emacs)
install_emacs_config
;;
private)
install_private
;;
homebrew|brew)
homebrew | brew)
install_homebrew
;;
rbenv)
install_rbenv
;;
launch_agents|agents)
launch_agents | agents)
install_launch_agents
;;
info)

View File

@@ -3,7 +3,7 @@ set -e
PREFIX="/opt/emacs"
help() {
show-help() {
echo "usage: ./install-emacs.sh <VERSION>"
}
@@ -24,17 +24,31 @@ install() {
deps() {
sudo apt-get update
sudo apt-get install -y \
build-essential libx11-dev xaw3dg-dev libjpeg-dev libpng12-dev \
libgif-dev libtiff4-dev libncurses5-dev libxft-dev librsvg2-dev \
libmagickcore-dev libmagick++-dev libxml2-dev libgpm-dev \
libghc-gconf-dev libotf-dev libm17n-dev libgnutls-dev
build-essential \
libghc-gconf-dev \
libgif-dev \
libgnutls-dev \
libgpm-dev \
libjpeg-dev \
libm17n-dev \
libmagick++-dev \
libmagickcore-dev \
libncurses5-dev \
libotf-dev \
libpng12-dev \
librsvg2-dev \
libtiff4-dev \
libx11-dev \
libxft-dev \
libxml2-dev \
xaw3dg-dev
}
main() {
local command="$1"
if [ -z "$command" ]; then
echo "$(help)" 1>&2
show-help 1>&2
exit 1
fi
@@ -45,4 +59,4 @@ main() {
fi
}
main $@
main "$@"

View File

@@ -3,7 +3,7 @@ set -e
PREFIX="/opt/tmux"
help() {
show-help() {
echo "usage: ./install-tmux.sh <VERSION>"
}
@@ -34,7 +34,7 @@ main() {
local command="$1"
if [ -z "$command" ]; then
echo "$(help)" 1>&2
show-help 1>&2
exit 1
fi
@@ -45,4 +45,4 @@ main() {
fi
}
main $@
main "$@"

View File

@@ -3,7 +3,7 @@ set -e
PREFIX="/opt/zsh"
help() {
show-help() {
echo "usage: ./install-zsh.sh <VERSION>"
}
@@ -31,7 +31,7 @@ main() {
local command="$1"
if [ -z "$command" ]; then
echo "$(help)" 1>&2
show-help 1>&2
exit 1
fi

View File

@@ -72,13 +72,13 @@ authmeo() {
# Make and cd into directory
# - from: http://alias.sh/make-and-cd-directory
mcd() {
mkdir -p "$1" && cd "$1";
mkdir -p "$1" && cd "$1"
}
# Extract most common archives with single command.
# - from: http://alias.sh/extract-most-know-archives-one-command
extract() {
if [ -f $1 ] ; then
if [ -f $1 ]; then
case $1 in
*.tar.bz2) tar xvjf $1 ;;
*.tar.gz) tar xvzf $1 ;;

View File

@@ -6,7 +6,7 @@ alias d="docker"
alias dc="docker-compose"
alias co="docker-compose"
docker_remove_exited () {
docker_remove_exited() {
docker rm "$(docker ps -f='status=exited' -q)"
}

View File

@@ -2,7 +2,7 @@
# Go (golang) setup.
#
install_go_global_packages () {
install_go_global_packages() {
local packages=(
github.com/akavel/up
github.com/asciimoo/wuzz

View File

@@ -8,7 +8,7 @@ alias flush_dns="dscacheutil -flushcache"
alias open_ports="sudo lsof -i -Pn | grep LISTEN"
# Open man page in Preview.
pman () {
pman() {
man -t "${1}" | open -f -a /Applications/Preview.app
}
@@ -20,7 +20,7 @@ alias unfix_wifi="sudo ifconfig awdl0 up"
# Disable the system built-in cmd+ctrl+d global hotkey to lookup word in
# dictionary on OS X. Must reboot after running.
# - from: ://apple.stackexchange.com/a/114269
osx-disable-lookup-word-hotkey () {
osx-disable-lookup-word-hotkey() {
defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys -dict-add 70 \
'<dict><key>enabled</key><false/></dict>'
echo "Command-Control-D hotkey disabled. Please reboot to take effect."
@@ -39,7 +39,7 @@ alias osx-enable-lowpri-throttle='sudo sysctl debug.lowpri_throttle_enabled=1'
# Set all relevant power management settings to force the machine to save a
# sleep image and immediately enter "standby" along with FileVault destroying
# disk decryption keys.
pm-hibernate () {
pm-hibernate() {
sudo pmset -a hibernatemode 25
sudo pmset -a standby 1
sudo pmset -a standbydelayhigh 0
@@ -50,7 +50,7 @@ pm-hibernate () {
# Restore all settings modified by pm-hibernate to their defaults, effectively
# restoring default sleep behavior for macOS laptops.
pm-safesleep () {
pm-safesleep() {
sudo pmset -a hibernatemode 3
sudo pmset -a standbydelayhigh 86400
sudo pmset -a standbydelaylow 0
@@ -59,13 +59,13 @@ pm-safesleep () {
}
# Trigger hibernation now.
hibernate () {
hibernate() {
pm-hibernate
sudo pmset sleepnow
}
# Trigger a safe-sleep now.
safesleep () {
safesleep() {
pm-safesleep
sudo pmset sleepnow
}

View File

@@ -10,7 +10,7 @@ alias ngi="npm install -g"
alias cof="coffee"
alias tl="tldr"
install_node_global_packages () {
install_node_global_packages() {
local packages=(
@prettier/plugin-php
@prettier/plugin-ruby

View File

@@ -2,7 +2,7 @@
# Python environment setup
#
install_python_global_packages () {
install_python_global_packages() {
local packages=(
'ansible'
'grip'

View File

@@ -2,7 +2,7 @@
# Ruby environment setup.
#
install_ruby_global_packages () {
install_ruby_global_packages() {
local packages=(
'bundler:~> 1.0'
'bundler:~> 2.0'
@@ -68,8 +68,9 @@ if command-exists rbenv; then
unset -f load-rbenv _rbenv rbenv
eval "$(command rbenv init -)"
}
fi
rbenv-each-version () {
rbenv-each-version() {
local current_version="$RBENV_VERSION"
for v in $(ls "${HOME}/.rbenv/versions"); do
@@ -79,28 +80,27 @@ if command-exists rbenv; then
done
export RBENV_VERSION="$current_version"
}
fi
}
# Solargraph related commands
solargraph-install () {
solargraph-install() {
rbenv-each-version "gem install solargraph"
}
solargraph-download-cores () {
solargraph-download-cores() {
rbenv-each-version "solargraph download-core"
}
solargraph-list-versions () {
solargraph-list-versions() {
rbenv-each-version "gem list -q solargraph"
}
rubygems-upgrade () {
rubygems-upgrade() {
rbenv-each-version "gem update --system"
}
upgrade-bundler () {
upgrade-bundler() {
rbenv-each-version \
"gem install --no-document 'bundler:~> 1.0' 'bundler:~> 2.0'"
}

15
zshenv
View File

@@ -10,6 +10,10 @@ fi
# Ensure compinit is NOT loaded before Zinit loads in ~/zshrc.
skip_global_compinit=1
# ==============================================================================
# PATH Setup
# ==============================================================================
# Ensure values in path variable are unique
typeset -U path
@@ -22,16 +26,19 @@ if [[ "$OSTYPE" == "darwin"* ]]; then
# Setup default PATH just like /etc/zprofile does
if [ -x "/usr/libexec/path_helper" ]; then
eval `/usr/libexec/path_helper -s`
eval $(/usr/libexec/path_helper -s)
fi
# Load /etc/zshenv if it exists
if [ -f "/etc/zshenv" ]; then
source "/etc/zshenv";
source "/etc/zshenv"
fi
fi
# Path helpers
# ==============================================================================
# PATH Helpers
# ==============================================================================
path_list () {
print -l "${(@)path}"
}
@@ -52,7 +59,6 @@ path_prepend () {
fi
}
# ==============================================================================
# System Environment Setup
# ==============================================================================
@@ -89,7 +95,6 @@ path_prepend "$DOTBIN"
# Add user's bin directory to PATH
path_prepend "$HOME/bin"
# ==============================================================================
# Private Dotfiles Environment
# ==============================================================================

11
zshrc
View File

@@ -27,9 +27,10 @@ ZINIT[HOME_DIR]="$HOME/.local/zsh/zinit"
ZINIT[BIN_DIR]="${ZINIT[HOME_DIR]}/bin"
# Ask to clone Zinit if it's not already available on disk.
[ ! -d "${ZINIT[BIN_DIR]}" ] && \
read -q "REPLY?Zinit not installed, clone to ${ZINIT[BIN_DIR]}? [y/N]:" && \
echo && git clone "https://github.com/zdharma/zinit.git" "${ZINIT[BIN_DIR]}"
[ ! -d "${ZINIT[BIN_DIR]}" ] &&
read -q "REPLY?Zinit not installed, clone to ${ZINIT[BIN_DIR]}? [y/N]:" &&
echo &&
git clone --depth=1 "https://github.com/zdharma/zinit.git" "${ZINIT[BIN_DIR]}"
# Load Zinit
source "${ZINIT[BIN_DIR]}/zinit.zsh"
@@ -64,7 +65,6 @@ zinit light zsh-users/zsh-completions
zinit ice wait lucid atload"!_zsh_autosuggest_start"
zinit light zsh-users/zsh-autosuggestions
# ==============================================================================
# Private Dotfiles
# ==============================================================================
@@ -73,7 +73,6 @@ if [ -f "$DOTPFILES/zshrc" ]; then
source "$DOTPFILES/zshrc"
fi
# ==============================================================================
# Tool specific setup
# ==============================================================================
@@ -101,7 +100,6 @@ source "$DOTZSH/python.zsh"
source "$DOTZSH/ruby.zsh"
source "$DOTZSH/rust.zsh"
# ==============================================================================
# Basic Z-Shell settings
# ==============================================================================
@@ -115,7 +113,6 @@ unsetopt share_history
# Disable attempted correction of commands (is wrong 98% of the time).
unsetopt correctall
# ==============================================================================
# Local Overrides
# ==============================================================================