78 lines
2.1 KiB
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 |