You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
2.0 KiB
99 lines
2.0 KiB
#!/usr/bin/env zsh
|
|
setopt PIPEFAIL
|
|
setopt EXTENDED_GLOB
|
|
# setopt XTRACE prompt_subst
|
|
|
|
## Ensure colors are available.
|
|
autoload -U colors && colors
|
|
|
|
PREZTO_DIRECTORY="${ZDOTDIR:-$HOME}/.zprezto"
|
|
PREZTO_GIT_REMOTE="https://github.com/ezintz/prezto.git"
|
|
|
|
function is_osx {
|
|
if [[ "$OSTYPE" != darwin* ]]; then
|
|
return 1
|
|
fi
|
|
|
|
return 0
|
|
}
|
|
|
|
function is_linux {
|
|
if [[ "$OSTYPE" != linux* ]]; then
|
|
return 1
|
|
fi
|
|
|
|
return 0
|
|
}
|
|
|
|
function print_header {
|
|
printf "\n${fg[blue]}%s${reset_color}\n" "$@"
|
|
}
|
|
|
|
function print_success {
|
|
printf "${fg[green]}✓ %s${reset_color}\n" "$@"
|
|
}
|
|
|
|
function print_notice {
|
|
printf "${fg[yellow]}i %s${reset_color}\n" "$@"
|
|
}
|
|
|
|
function print_warning {
|
|
printf "${fg[magenta]}! %s${reset_color}\n" "$@"
|
|
}
|
|
|
|
function print_error {
|
|
printf "${fg[red]}x %s${reset_color}\n" "$@"
|
|
}
|
|
|
|
function print_question {
|
|
printf "${fg[cyan]}? %s${reset_color}\n" "$@"
|
|
}
|
|
|
|
function seek_confirmation {
|
|
print_warning "$@"
|
|
read -q "REPLY?${fg[cyan]}? Continue? (y/n)${reset_color} " -n 1
|
|
printf "\n"
|
|
}
|
|
|
|
function is_confirmed {
|
|
if [[ "$REPLY" =~ ^[Yy]$ ]]; then
|
|
return 0
|
|
fi
|
|
|
|
return 1
|
|
}
|
|
|
|
function cleanup {
|
|
print_header "Cleanup"
|
|
}
|
|
|
|
TRAPINT() {
|
|
print ""
|
|
print_error "Caught SIGINT, aborting."
|
|
cleanup
|
|
return $(( 128 + $1 ))
|
|
}
|
|
|
|
print_header "Prezto — Instantly Awesome Zsh"
|
|
seek_confirmation "Do you want to proceed with the installation"
|
|
if is_confirmed; then
|
|
print_notice "Cloning prezto to $PREZTO_DIRECTORY ..."
|
|
if [[ ! -d $PREZTO_DIRECTORY ]]; then
|
|
git clone --recursive "$PREZTO_GIT_REMOTE" "$PREZTO_DIRECTORY"
|
|
fi
|
|
print_success "... done!"
|
|
|
|
print_notice "Creating sym links for prezto rcfiles ..."
|
|
for rcfile in "$PREZTO_DIRECTORY"/runcoms/^README.md(.N); do
|
|
tarfile="${ZDOTDIR:-$HOME}/.${rcfile:t}"
|
|
if [[ -f "$tarfile" ]]; then
|
|
print_warning "$tarfile already exists, creating a backup as ${tarfile}.backup"
|
|
mv "$tarfile" "${tarfile}.backup"
|
|
fi
|
|
ln -s "$rcfile" "$tarfile"
|
|
done
|
|
print_success "... done!"
|
|
else
|
|
print_error "Installation aborted."
|
|
fi
|