This commit is contained in:
Alexander Navarro 2023-02-28 23:58:50 -03:00
parent 191c2e4ecd
commit f3c1524c2d
12 changed files with 254 additions and 30 deletions

68
scripts/fzf-nf-install Executable file
View file

@ -0,0 +1,68 @@
#!/usr/bin/env bash
if [ "$(uname -s)" == "Linux" ]; then
FONT_DIR="$HOME/.local/share/fonts"
NF_DL_DIR="$HOME/.cache/fzf/nf-dl"
elif [ "$(uname -s)" == "Darwin" ]; then
FONT_DIR="/Applications/Fonts"
NF_DL_DIR="/Library/Caches/fzf/nf-dl"
fi
blu=$(tput setaf 4) cyn=$(tput setaf 6) bld=$(tput bold) rst=$(tput sgr0)
get_nf_links() {
curl --silent https://www.nerdfonts.com/font-downloads | grep '/download/' | cut -d'"' -f 2 | sort -u
}
set_nf_name() {
get_nf_links | \
awk -v blu="${blu}" -v cyn="${cyn}" -v bld="${bld}" -v rst="${rst}" \
-F'/' '
{
print blu bld $9 rst "&& - " cyn $0
}' \
| sed 's/\.zip//' | column -ts '&&'
}
if [ ! -d "$NF_DL_DIR" ]; then
mkdir -p "$NF_DL_DIR"
set_nf_name > "$NF_DL_DIR"/nf-dl_url
fi
declare tmp_file ls_installed_font
tmp_file="$(mktemp)"; echo 'install' > "$tmp_file"; trap 'rm -f $tmp_file' EXIT
ls_installed_font="find \"${FONT_DIR}\" -mindepth 1 -type d -printf \"${bld}${blu}%f\n\""
cat < "$NF_DL_DIR/nf-dl_url" | \
fzf --ansi +x \
--tiebreak=begin \
--layout=reverse \
--prompt=" nf-dl > " \
--preview-window=hidden \
--header='<M-i>:nstall | <M-u>:ninstall | <Del>:ete cache ' \
--bind="alt-u:reload($ls_installed_font)+execute-silent(echo 'remove' > $tmp_file)" \
--bind="alt-i:reload(cat < \"$NF_DL_DIR/nf-dl_url\")+execute-silent(echo 'install' > $tmp_file)" \
--bind="del:execute(rm -rf $NF_DL_DIR;)" \
--bind="enter:execute(
if grep -q 'install' $tmp_file ; then
echo -e '${bld}${blu}Downloading ${cyn}{1} Nerd Font...${rst}\n';wget {3}
[ -d ${FONT_DIR} ] || mkdir -p ${FONT_DIR}/{1}
unzip {1} -d ${FONT_DIR}/{1}
fc-cache -f ${FONT_DIR} && [ -e ${FONT_DIR}/{1} ] && echo \"\n${bld}${cyn}Nerd Font: ${blu}{1} ${rst}has been installed\n\"
echo -e \"${bld}${cyn}Would you like to delete or keep ${blu}{1}.zip${rst} (y/n):\" && rm -i {1}.zip
echo -e '\n${blu}${bld}Press any key to continue...${rst}' && read -rsk1
else
echo -e \"${bld}${blu}Uninstall/Remove ${cyn}Nerd Font: {1} ${rst}(y/n):\"
[ -d ${FONT_DIR}/{1} ] && rm -IR ${FONT_DIR}/{1}; echo 'remove' > $tmp_file
fc-cache -f -v && echo \"\n${bld}${cyn}Nerd Font: ${blu}{1} ${rst}has been uninstalled\"
echo -e '\n${blu}${bld}Press any key to continue...${rst}' && read -rsk1
fi
)+reload(
if grep -q 'remove' $tmp_file; then
$ls_installed_font
else cat < \"$NF_DL_DIR/nf-dl_url\"
fi)"
# to add if possible or if i can
# - preview?
# - indicator ([x] [ ] installed or not) #maybe not
# - windows? idk this shit