]> arthur.barton.de Git - ax-zsh.git/blobdiff - ax.zsh
Better sort search path, and prefere "sbin" over "bin"
[ax-zsh.git] / ax.zsh
diff --git a/ax.zsh b/ax.zsh
index c2ed4d6c3e7edce41f1555285e775510d3de75a8..88c16bd79bcbf9853b3a13f2a3d3e1cbd396c7bf 100644 (file)
--- a/ax.zsh
+++ b/ax.zsh
@@ -1,5 +1,5 @@
 # AX-ZSH: Alex' Modular ZSH Configuration
-# Copyright (c) 2015 Alexander Barton <alex@barton.de>
+# Copyright (c) 2015-2016 Alexander Barton <alex@barton.de>
 
 script_name="${${(%):-%N}:t}"
 script_type="$script_name[2,-1]"
@@ -13,6 +13,12 @@ function axzsh_load_plugin {
        [[ -z "$2" ]] && type="zshrc" || type="$2"
        fname="$dname/$plugin.$type"
 
+       # Strip repository prefix (like "alexbarton#test-plugin"):
+       [[ "$plugin" =~ "#" ]] && plugin=$(echo $plugin | cut -d'#' -f2-)
+
+       # "short plugin name": strip ".zsh" suffix:
+       plugin_short=${plugin%.zsh}
+
        if [[ ! -d "$dname" ]]; then
                # Plugin not found!
                if [[ -n "$AXZSH_DEBUG" ]]; then
@@ -26,23 +32,32 @@ function axzsh_load_plugin {
        fi
 
        if [[ ! -r "$fname" && "$type" == "zshrc" ]]; then
-               if [[ -r "$dname/$plugin.plugin.zsh" ]]; then
+               if [[ -r "$dname/$plugin.zprofile" || -r "$dname/$plugin.zlogout" ]]; then
+                       # Native AX-ZSH plugin, but for different stage. Skip it!
+                       :
+               elif [[ -r "$dname/${plugin_short}.plugin.zsh" ]]; then
                        # Oh My ZSH plugin
                        type="plugin.zsh"
-                       fname="$dname/$plugin.plugin.zsh"
+                       fname="$dname/${plugin_short}.plugin.zsh"
                elif [[ -r "$dname/init.zsh" ]]; then
                        # Prezto module
                        type="init.zsh"
                        fname="$dname/init.zsh"
+               else
+                       echo "AX-ZSH plugin type of \"$plugin\" unknown, skipped!" >&2
+                       return 0
                fi
        fi
 
        if [[ "$type" == "zprofile" && -d "$dname/functions" ]]; then
                # Add plugin function path when folder exists
+               [[ -n "$AXZSH_DEBUG" ]] \
+                       && echo "   - $plugin ($type): functions ..."
                axzsh_fpath+=("$dname/functions")
        fi
 
        if [[ -r "$fname" ]]; then
+               # Read plugin ...
                [[ -n "$AXZSH_DEBUG" ]] \
                        && echo "   - $plugin ($type) ..."
                source "$fname"
@@ -78,6 +93,8 @@ plugin_list=(
 for plugin ($plugin_list); do
        axzsh_load_plugin "$plugin" "$script_type"
 done
+
+# Clean up ...
 unfunction axzsh_load_plugin
 unset script_name script_type plugin
 unset plugin_list