Browse code
detect old zsh, fallback to something sane...
Showing 1 changed files
... | ... |
@@ -1,50 +1,55 @@ |
1 | 1 |
#zmodload zsh/zprof |
2 | 2 |
PLUGIN_DIR="${PLUGIN_DIR:-$HOME/.zsh.d}" |
3 |
- |
|
3 |
+LOAD_DEBUG=1 |
|
4 | 4 |
local script_depends loaded_depends |
5 | 5 |
typeset -A script_depends |
6 | 6 |
typeset -A loaded_depends |
7 | 7 |
get_depends() { |
8 |
- awk -F: '$0=="###" || $1 != "#" { exit } $1="depends-on" {print $3}' "$1" |
|
8 |
+ awk -F: '$0=="###" || $1 != "#" { exit } $1="depends-on" {print $3}' "$1" |
|
9 | 9 |
} |
10 | 10 |
|
11 | 11 |
build_depends() { |
12 |
- local -a depends |
|
13 |
- depends=${(@f)$(get_depends "$1")} |
|
14 |
- for depend in $depends; do |
|
15 |
- script_depends[$1]+="$depend:" |
|
16 |
- done |
|
12 |
+ local -a depends |
|
13 |
+ depends=${(@f)$(get_depends "$1")} |
|
14 |
+ for depend in $depends; do |
|
15 |
+ script_depends[$1]+="$depend:" |
|
16 |
+ done |
|
17 | 17 |
} |
18 | 18 |
|
19 | 19 |
load_depends() { |
20 |
- for depend in ${(s<:>)script_depends[$1]}; do |
|
21 |
- if [[ -z $loaded_depends[$depend] ]]; then |
|
22 |
- local fn="$PLUGIN_DIR/dependencies/$depend.zsh" |
|
23 |
- if [[ -f $fn ]]; then |
|
24 |
- if [[ -z $script_depends[$fn] ]]; then |
|
25 |
- build_depends "$fn" |
|
26 |
- fi |
|
27 |
- load_depends "$fn" |
|
28 |
- source $fn |
|
29 |
- else |
|
30 |
- echo "$fn missing for $1" |
|
31 |
- fi |
|
32 |
- loaded_depends[$depend]=1 |
|
33 |
- else |
|
34 |
- fi |
|
35 |
- done |
|
20 |
+ for depend in ${(s<:>)script_depends[$1]}; do |
|
21 |
+ if [[ -z $loaded_depends[$depend] ]]; then |
|
22 |
+ local fn="$PLUGIN_DIR/dependencies/$depend.zsh" |
|
23 |
+ if [[ -f $fn ]]; then |
|
24 |
+ if [[ -z $script_depends[$fn] ]]; then |
|
25 |
+ build_depends "$fn" |
|
26 |
+ fi |
|
27 |
+ load_depends "$fn" |
|
28 |
+ source $fn |
|
29 |
+ else |
|
30 |
+ echo "$fn missing for $1" |
|
31 |
+ fi |
|
32 |
+ loaded_depends[$depend]=1 |
|
33 |
+ else |
|
34 |
+ fi |
|
35 |
+ done |
|
36 | 36 |
} |
37 | 37 |
|
38 | 38 |
init_scripts=( $PLUGIN_DIR/*.{,z}sh(N) ) |
39 | 39 |
|
40 |
-PATH="<<<:$PATH:>>>" |
|
41 |
-for x in $init_scripts; do |
|
40 |
+if [[ ${ZSH_VERSION%.*} != "5.3" ]]; then |
|
41 |
+ echo "wrong zsh version... loading fallback configuration" |
|
42 |
+ PROMPT=$'%~\n%!%# ' |
|
43 |
+else |
|
44 |
+ PATH="<<<:$PATH:>>>" |
|
45 |
+ for x in $init_scripts; do |
|
42 | 46 |
build_depends "$x" |
43 | 47 |
load_depends "$x" |
44 | 48 |
source "$x" |
45 |
-done |
|
49 |
+ done |
|
50 |
+fi |
|
46 | 51 |
|
47 | 52 |
# Local Variables: |
48 | 53 |
# mode: sh |
49 | 54 |
# sh-shell: zsh |
50 |
-# End: |
|
51 | 55 |
\ No newline at end of file |
56 |
+# End: |