+abort() {
+ ax_msg 2 "Failed to setup AX-ZSH!"
+ exit 1
+}
+
+umask 027
+
+[ -n "$AXZSH" ] || AXZSH="$HOME/.axzsh"
+export 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
+
+ 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 ..."