Page MenuHomePhorge

start-powerline.sh
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

start-powerline.sh

#!/usr/bin/env bash
# Check if in an interactive shell
# `test -t` tests if a file descriptor is open, 0 being stdin
# Normally, a non-interactive shell will not have 0 FD bound
# However, Buildkite still has 0 FD bound, so check if PS1 is empty
if [[ ! -t 0 ]] || [[ -z "$PS1" ]]; then
return 0
fi
if test "$(uname)" = "Darwin" ; then
COMM_CACHE="${XDG_CACHE_HOME:-$HOME/Library/Caches}/app.comm"
else
COMM_CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/comm"
fi
mkdir -p "$COMM_CACHE"
COMM_POWERLINE="$COMM_CACHE/enable-powerline"
# Only emit this the first time, as it's suprising to the user for the prompt
# to be replaced, but avoid emitting the warning on subsequent invocations
if [[ ! -e "${COMM_POWERLINE}" ]]; then
read -r \
-p "Would you like to enable Powerline as the default bash prompt? [y/N] " \
response
case "$response" in
[yY][eE][sS]|[yY])
echo "1" > "${COMM_POWERLINE}"
;;
*)
touch "${COMM_POWERLINE}"
;;
esac
fi
# If empty, user want's to use native prompt
if [[ ! -s "${COMM_POWERLINE}" ]]; then
return 0
fi
# Check if the powerline fonts are installed
# If the font is missing then many of the glyphs will render as ?
# Adapted from https://github.com/powerline/fonts/blob/master/install.sh
if test "$(uname)" = "Darwin" ; then
# MacOS
font_dir="$HOME/Library/Fonts"
else
# Linux
font_dir="${XDG_DATA_HOME:-$HOME/.local/share}/fonts"
mkdir -p "$font_dir"
fi
if [[ ! -f "$font_dir/Droid Sans Mono for Powerline.otf" ]]; then
if [[ ! -d "${powerline_fonts:-/doesnt-exist}" ]]; then
echo "Unable to determine powerline fonts location" >&2
return 1
fi
echo "Installing Powerline fonts" >&2
find "$powerline_fonts" \
\( -name "*.[ot]tf" -or -name "*.pcf.gz" \) -type f -print0 \
| xargs -0 -n1 -I % cp "%" "$font_dir/"
if test "$(uname)" = "Darwin" ; then
if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]]; then
echo ""
echo "For glyph support, please:
Select Terminal > Settings > Profiles > Text > Font \
Select font with 'for Powerline' in the name" >&2
echo ""
elif [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
echo ""
echo "For glyph support, please:
Select iTerm2 > Settings > Profiles > Text > Font > \
Select font with 'for Powerline' in the name" >&2
echo ""
fi
elif command -v fc-cache ; then
# Reset font cache on Linux
echo "Resetting font cache, this may take a moment..." >&2
fc-cache -f "$font_dir"
fi
fi
# shellcheck source=/dev/null
source "${powerline_root:-.}/share/bash/powerline.sh"

File Metadata

Mime Type
text/x-shellscript
Expires
Sun, Dec 7, 4:28 PM (18 h, 24 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5691358
Default Alt Text
start-powerline.sh (2 KB)

Event Timeline