From ccace0ca7442d9159b3d867edb39eae3b47fb392 Mon Sep 17 00:00:00 2001 From: Eric Nielsen Date: Fri, 31 Jul 2020 21:03:47 -0500 Subject: [PATCH] Clean compiled files from absolute path modules We were already compiling at these paths, but not cleaning the compiled files. Fixes #399 --- CHANGELOG.md | 10 ++++++---- src/stage2/50_zimfw_clean_compiled.zsh.erb | 4 +++- src/stage2/80_zimfw.zsh.erb | 4 ++-- src/zimfw.zsh.erb | 2 +- zimfw.zsh | 12 +++++++----- 5 files changed, 19 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c22bd9..3010693 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,24 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -_No unreleased changes._ +### Fixed +- Compiled files must also be cleaned from modules defined with absolute paths. ## [1.3.1] - 2020-07-24 ### Fixed -- gunzip failing with "unexpected end of file" when trying to upgrade zimfw. +- "gzip: stdin: unexpected end of file" error when trying to upgrade. (See [#407](https://github.com/zimfw/zimfw/issues/407)) ## [1.3.0] - 2020-07-05 ### Added -- `-c|-cmd` option to `zmodule`. +- `-c|-cmd` option to `zmodule`. This allows for executing any specified command. ## [1.2.2] - 2020-06-10 ### Fixed - Allow local modules to be initialized and compiled in their respective - directories, instead of forcing them to be installed inside `ZIM_HOME`. + directories, when absolute paths are given, instead of forcing them to be + installed inside `ZIM_HOME`. ## [1.2.1] - 2020-05-26 diff --git a/src/stage2/50_zimfw_clean_compiled.zsh.erb b/src/stage2/50_zimfw_clean_compiled.zsh.erb index a9e9021..8ac1022 100644 --- a/src/stage2/50_zimfw_clean_compiled.zsh.erb +++ b/src/stage2/50_zimfw_clean_compiled.zsh.erb @@ -1,7 +1,9 @@ _zimfw_clean_compiled() { + # Array with unique dirs. ${ZIM_HOME} or any subdirectory should only occur once. + local -Ur zscriptdirs=(${ZIM_HOME} ${${_zdirs##${ZIM_HOME}/*}:A}) local zopt if (( _zprintlevel > 0 )) zopt='-v' - command rm -f ${zopt} ${ZIM_HOME}/**/*.zwc(|.old) || return 1 + command rm -f ${zopt} ${^zscriptdirs}/**/*.zwc(|.old)(N) || return 1 command rm -f ${zopt} <%= home %>/<%= startup_files_glob %>.zwc(|.old)(N) || return 1 _zimfw_print -P '<%= done %>Done with clean-compiled. Run %Bzimfw compile%b to re-compile.' } diff --git a/src/stage2/80_zimfw.zsh.erb b/src/stage2/80_zimfw.zsh.erb index 56d7f8f..402ffb5 100644 --- a/src/stage2/80_zimfw.zsh.erb +++ b/src/stage2/80_zimfw.zsh.erb @@ -57,8 +57,8 @@ Options: _zimfw_compile ;; init) _zimfw_source_zimrc && _zimfw_build ;; - clean) _zimfw_clean_compiled && _zimfw_clean_dumpfile ;; - clean-compiled) _zimfw_clean_compiled ;; + clean) _zimfw_source_zimrc && _zimfw_clean_compiled && _zimfw_clean_dumpfile ;; + clean-compiled) _zimfw_source_zimrc && _zimfw_clean_compiled ;; clean-dumpfile) _zimfw_clean_dumpfile ;; compile) _zimfw_source_zimrc && _zimfw_build_login_init && _zimfw_compile ;; help) print -PR ${zusage} ;; diff --git a/src/zimfw.zsh.erb b/src/zimfw.zsh.erb index e5cb55d..7473785 100644 --- a/src/zimfw.zsh.erb +++ b/src/zimfw.zsh.erb @@ -6,7 +6,7 @@ class Zim @home = "${ZDOTDIR:-${HOME}}" @min_zsh_version = "5.2" @startup_files_glob = ".z(shenv|profile|shrc|login|logout)" - @version = "1.3.1" + @version = "1.3.2-SNAPSHOT" @ellipsis = " ..." @okay = "%F{green})%f " @warn = "! " diff --git a/zimfw.zsh b/zimfw.zsh index c0b8cd3..21113ef 100644 --- a/zimfw.zsh +++ b/zimfw.zsh @@ -291,9 +291,11 @@ _zimfw_version_check() { } _zimfw_clean_compiled() { + # Array with unique dirs. ${ZIM_HOME} or any subdirectory should only occur once. + local -Ur zscriptdirs=(${ZIM_HOME} ${${_zdirs##${ZIM_HOME}/*}:A}) local zopt if (( _zprintlevel > 0 )) zopt='-v' - command rm -f ${zopt} ${ZIM_HOME}/**/*.zwc(|.old) || return 1 + command rm -f ${zopt} ${^zscriptdirs}/**/*.zwc(|.old)(N) || return 1 command rm -f ${zopt} ${ZDOTDIR:-${HOME}}/.z(shenv|profile|shrc|login|logout).zwc(|.old)(N) || return 1 _zimfw_print -P 'Done with clean-compiled. Run %Bzimfw compile%b to re-compile.' } @@ -313,7 +315,7 @@ _zimfw_compile() { } _zimfw_info() { - print -R 'zimfw version: '${_zversion}' (previous commit is 713b7b2)' + print -R 'zimfw version: '${_zversion}' (previous commit is 5059dd2)' print -R 'ZIM_HOME: '${ZIM_HOME} print -R 'Zsh version: '${ZSH_VERSION} print -R 'System info: '$(command uname -a) @@ -357,7 +359,7 @@ _zimfw_upgrade() { } zimfw() { - local -r _zversion='1.3.1' + local -r _zversion='1.3.2-SNAPSHOT' local -r zusage="Usage: %B${0}%b [%B-q%b|%B-v%b] Actions: @@ -493,8 +495,8 @@ fi _zimfw_compile ;; init) _zimfw_source_zimrc && _zimfw_build ;; - clean) _zimfw_clean_compiled && _zimfw_clean_dumpfile ;; - clean-compiled) _zimfw_clean_compiled ;; + clean) _zimfw_source_zimrc && _zimfw_clean_compiled && _zimfw_clean_dumpfile ;; + clean-compiled) _zimfw_source_zimrc && _zimfw_clean_compiled ;; clean-dumpfile) _zimfw_clean_dumpfile ;; compile) _zimfw_source_zimrc && _zimfw_build_login_init && _zimfw_compile ;; help) print -PR ${zusage} ;;