X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=install.sh;h=e5ded0bfa2c4824060a419203f9a4b635060b2f7;hb=164e33941f8f50b9ead5148905f1bd046a0f352f;hp=0c50964d91ea1a282f7bf4a04bef0392da45d50d;hpb=2dfa35ae5ff9fe3294033ab56fb240b68043bd28;p=ax-zsh.git diff --git a/install.sh b/install.sh index 0c50964..e5ded0b 100755 --- a/install.sh +++ b/install.sh @@ -20,10 +20,15 @@ unset dir ax_common ax_common_sourced safe_rm() { if [ -f "$1" -a ! -L "$1" ]; then - rm -f "$1.bak" || exit 1 - mv -v "$1" "$1.bak" || exit 1 + rm -f "$1.bak" || abort + mv -v "$1" "$1.bak" || abort fi - rm -f "$1" || exit 1 + rm -f "$1" || abort +} + +abort() { + ax_msg 2 "Failed to setup AX-ZSH!" + exit 1 } umask 027 @@ -31,26 +36,64 @@ umask 027 [ -n "$AXZSH" ] || AXZSH="$HOME/.axzsh" export AXZSH -ax_msg - "Installing AX-ZSH into \"$AXZSH\" ..." +S=$(dirname "$0") + +if [ "$S" = "$AXZSH" -o "$PWD" = "$AXZSH" ]; then + ax_msg 1 "Initializing \"$AXZSH\":" +else + ax_msg 1 "Install AX-ZSH into \"$AXZSH\":" + + [ -L "$AXZSH" ] && rm -f "$AXZSH" + mkdir -p "$AXZSH" || abort + + ax_msg - "Copying binaries and scripts ..." + cp -pRv "$S/ax.zsh"* "$AXZSH/" || abort + mkdir -p "$AXZSH/bin" || abort + cp -pRv "$S/bin/"* "$AXZSH/bin/" || abort -safe_rm "$AXZSH" || exit 1 -ln -sv "$PWD" "$AXZSH" || exit 1 + for f in AUTHORS LICENSE.md README.md; do + cp -pRv "$S/$f" "$AXZSH/" || abort + done + + ax_msg - "Copying plugins ..." + for plugin_type in core default_plugins plugins; do + mkdir -p "$AXZSH/$plugin_type" || abort + for p in "$S/$plugin_type/"*; do + echo "$p -> $AXZSH/$p" + rm -fr "${AXZSH:?}/$p" || abort + cp -pR "$S/$p" "$AXZSH/$p" || abort + done + done + + ax_msg - "Copying themes ..." + mkdir -p "$AXZSH/themes" || abort + for p in "$S/themes/"*; do + echo "$p -> $AXZSH/$p" + rm -fr "${AXZSH:?}/$p" || abort + cp -pR "$S/$p" "$AXZSH/$p" || abort + done +fi + +mkdir -p "$AXZSH/custom_plugins" || abort +mkdir -p "$AXZSH/custom_themes" || abort + +ax_msg - "Linking ZSH startup files ..." for f in ~/.zlogin ~/.zlogout ~/.zprofile ~/.zshrc; do - safe_rm "$f" || exit 1 - ln -sv "$AXZSH/ax.zsh" "$f" || exit 1 + safe_rm "$f" || abort + ln -sv "$AXZSH/ax.zsh" "$f" || abort done if [ ! -d "$AXZSH/active_plugins" ]; then ax_msg - "Initializing plugin directory \"$AXZSH/active_plugins\" ..." - type zsh >/dev/null 2>&1 + which zsh >/dev/null 2>&1 if [ $? -eq 0 ]; then - zsh "$AXZSH/bin/axzshctl" reset-plugins - exit $? + zsh "$AXZSH/bin/axzshctl" reset-plugins || abort else - ax_msg 2 "Oops, \"zsh\" not found!?" - exit 1 + ax_msg 1 "Oops, \"zsh\" not found!?" fi else ax_msg - "Plugin directory \"$AXZSH/active_plugins\" already exists. Ok." fi + +ax_msg 0 "AX-ZSH setup successfully."