Browse code
Add dependency system to zshrc
Ed Langley authored on 04/07/2017 19:56:02
Showing 8 changed files
Showing 8 changed files
- .gitignore
- zsh_plugins/00-dircolors.sh
- zsh_plugins/00-utils.zsh
- zsh_plugins/01-java.zsh
- zsh_plugins/01-pfff.zsh
- zsh_plugins/99-path-setup.zsh
- zsh_plugins/dependencies/00-utils.zsh
- zshrc_work
... | ... |
@@ -299,12 +299,56 @@ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/lib |
299 | 299 |
export VIMCLOJURE_SERVER_JAR="$HOME/lib/vimclojure/server-2.3.6.jar" |
300 | 300 |
export CLON_THEME=el |
301 | 301 |
|
302 |
+typeset -A script_depends |
|
303 |
+typeset -A loaded_depends |
|
304 |
+get_depends() { |
|
305 |
+ awk -F: '$0=="###" || $1 != "#" { exit } $1="depends-on" {print $3}' "$1" |
|
306 |
+} |
|
307 |
+ |
|
308 |
+build_depends() { |
|
309 |
+ for depend in ${(f)$(get_depends "$1")}; do |
|
310 |
+ script_depends[$1]+="$depend:" |
|
311 |
+ done |
|
312 |
+} |
|
313 |
+ |
|
314 |
+load_depends() { |
|
315 |
+ for depend in ${(s<:>)script_depends[$1]}; do |
|
316 |
+ if [[ -z $loaded_depends[$depend] ]]; then |
|
317 |
+ local fn="$HOME/.zsh.d/dependencies/$depend.zsh" |
|
318 |
+ echo -n "loading dependency $fn ... " |
|
319 |
+ if [[ -f $fn ]]; then |
|
320 |
+ if [[ -z $script_depends[$fn] ]]; then |
|
321 |
+ build_depends "$fn" |
|
322 |
+ fi |
|
323 |
+ load_depends "$fn" |
|
324 |
+ source $fn |
|
325 |
+ echo "done." |
|
326 |
+ else |
|
327 |
+ echo "missing." |
|
328 |
+ fi |
|
329 |
+ loaded_depends[$depend]=1 |
|
330 |
+ else |
|
331 |
+ echo "dependency $depend already loaded." |
|
332 |
+ fi |
|
333 |
+ done |
|
334 |
+} |
|
335 |
+ |
|
302 | 336 |
init_scripts=( $HOME/.zsh.d/*.{,z}sh(N) ) |
303 | 337 |
|
304 | 338 |
PATH="<<<:$PATH:>>>" |
339 |
+echo |
|
340 |
+echo |
|
341 |
+echo |
|
305 | 342 |
for x in $init_scripts; do |
343 |
+ echo loading module $x |
|
344 |
+ build_depends "$x" |
|
345 |
+ load_depends "$x" |
|
346 |
+ echo loading $x |
|
306 | 347 |
source "$x" |
307 | 348 |
done |
349 |
+echo |
|
350 |
+echo |
|
351 |
+echo |
|
308 | 352 |
|
309 | 353 |
FORTUNE="$(command -v fortune)" |
310 | 354 |
if [ -x "$FORTUNE" ]; then |