dotfiles/.config/fish/functions/__mm_dependencies.fish

78 lines
2.1 KiB
Fish

function __mm_confirm --description 'Confirm' --argument prompt
if test -z "$prompt"
set prompt "Continue?"
end
while true
read -p 'echo -ne "$prompt ["; set_color green; echo -ne "y"; set_color normal; echo -ne "/"; set_color red; echo -ne "N"; set_color normal; echo -ne "]: "; ' -l confirm
switch $confirm
case Y y
return 0
case '' N n
return 1
end
end
end
function __mm_echo --argument color --argument text --argument no_newline
set_color $color;
if test -n "$no_newline"
echo -ne $text
else
echo $text
end
set_color normal;
end
function __mm_check_dependencies
if type -q "fzf"
return 0
else
return 1
end
end
function __mm_install_dependencies
if __mm_check_dependencies
echo ""
__mm_echo green "Dependencies already installed"
echo ""
return 0
else
echo ""
echo "MakeMeFish is dependent of fzf - the command line fuzzy finder."
if __mm_confirm "fzf is not installed. Would you like to install fzf?"
switch (uname)
case Linux Darwin
if type -q "brew"
if __mm_confirm "You are using brew - would you like to install fzf through brew?"
echo (brew install fzf)
return 0
end
end
case FreeBSD NetBSD DragonFly
echo (pkg install fzf)
return 0
case '*'
echo "Unknown OS"
end
__mm_echo red "Could not install automatically."
end
echo -ne "Go to "; __mm_echo blue "https://github.com/junegunn/fzf#installation" 1; echo -ne " and follow the instructions for your environment."
return 1
end
end
function __mm_dependencies
if __mm_check_dependencies
return 0
else
if __mm_install_dependencies true
return 0
else
return 1
end
end
end