Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F32159224
start-powerline.sh
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
start-powerline.sh
View Options
#!/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
Details
Attached
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)
Attached To
Mode
rCOMM Comm
Attached
Detach File
Event Timeline
Log In to Comment