before installing a font, check if it already exists; try to remove if so

pull/527/head
romkatv 5 years ago
parent 3077929e18
commit 5567ab3850

@ -374,28 +374,74 @@ function install_font() {
function ask_font() { function ask_font() {
can_install_font || return 0 can_install_font || return 0
{
while true; do
clear
(( greeting_printed )) || print_greeting
flowing -c "%BInstall %b%2FMeslo Nerd Font%f%B?%b"
print -P ""
print -P ""
print -P "%B(y) Yes (recommended).%b"
print -P ""
print -P "%B(n) No. Use the current font.%b"
print -P ""
print -P "(q) Quit and do nothing."
print -P ""
local key=
read -k key${(%):-"?%BChoice [ynq]: %b"} || quit -c
case $key in
q) quit;;
y) ask_remove_font || return; install_font; break;;
n) break;;
esac
done
} always {
greeting_printed=1
}
}
function ask_remove_font() {
local font
local -a fonts
local -i protected
for font in {,/System,~}/Library/Fonts/**/*[Mm]eslo*.(ttf|otf)(N:A); do
[[ -f $font && -r $font ]] || continue
[[ $font == ~/Library/Fonts/'MesloLGS NF '(Regular|Bold|Italic|Bold\ Italic).ttf ]] && continue
[[ "$(<$font)" == *"MesloLGS NF"$'\0'* ]] || continue
fonts+=$font
[[ -w ${font:h} ]] || protected=1
done
(( $#fonts )) || return 0
while true; do while true; do
clear clear
print_greeting flowing -c "A variant of %2FMeslo Nerd Font%f" is already installed.
flowing -c "%BInstall %b%2FMeslo Nerd Font%f%B?%b"
print -P "" print -P ""
for font in $fonts; do
print -P " %B${font//\%/%%}%b"
done
print -P "" print -P ""
print -P "%B(y) Yes (recommended).%b" if (( protected )); then
flowing Please %Bdelete%b these files and run '%2Fp10k%f %Bconfigure%b.'
print
exit 0
fi
flowing -c "%BDelete these files?%b"
print -P "" print -P ""
print -P "%B(n) No. Use the current font.%b" print -P "%B(y) Yes (recommended).%b"
print -P "" print -P ""
print -P "(r) Restart from the beginning."
print -P "(q) Quit and do nothing." print -P "(q) Quit and do nothing."
print -P "" print -P ""
local key= local key=
read -k key${(%):-"?%BChoice [ynq]: %b"} || quit -c read -k key${(%):-"?%BChoice [yrq]: %b"} || quit -c
case $key in case $key in
q) quit;; q) quit;;
y) install_font; break;; r) return 1;;
n) break;; y) zf_rm -f -- $fonts || quit -c; break;;
esac esac
done done
greeting_printed=1
} }
function ask_diamond() { function ask_diamond() {

Loading…
Cancel
Save