to autoloads the functions and sources the scripts, instead of executing zimfw during startup, and having it always figuring out what do to on the fly. This takes out the worry about zimfw interfering with the startup time, and allows room to add more features to it. So, zstyle was replaced by a custom zmodule function to define the modules, with the extra ability of allowing users to set custom fpath paths, autoloaded functions and sourced scripts per module.
73 lines
2.1 KiB
Plaintext
73 lines
2.1 KiB
Plaintext
zimfw() {
|
|
local -r zusage="
|
|
Usage: %B${0}%b <action> [%B-q%b]
|
|
|
|
Actions:
|
|
%Bbuild%b Build init script
|
|
%Bclean%b Clean all (see below)
|
|
%Bclean-modules%b Clean unused modules
|
|
%Bclean-compiled%b Clean Zsh compiled files
|
|
%Bclean-dumpfile%b Clean completion dump file
|
|
%Bcompile%b Compile Zsh files
|
|
%Binfo%b Print Zim and system info
|
|
%Binstall%b Install new modules
|
|
%Bupdate%b Update current modules
|
|
%Bupgrade%b Upgrade Zim
|
|
|
|
Options:
|
|
%B-q%b Quiet, only outputs errors
|
|
"
|
|
local ztool _zmodules_xargs
|
|
local -a _zdisableds _zmodules _zfpaths _zfunctions _zscripts
|
|
local -i _zquiet=0
|
|
if (( # > 2 )); then
|
|
print -u2 -PR "%F{red}${0}: Too many options%f"$'\n'${zusage}
|
|
return 1
|
|
elif (( # > 1 )); then
|
|
case ${2} in
|
|
-q) _zquiet=1 ;;
|
|
*)
|
|
print -u2 -PR "%F{red}${0}: Unknown option ${2}%f"$'\n'${zusage}
|
|
return 1
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
case ${1} in
|
|
install)
|
|
ztool="<%= render_escaped("src/tools/install.zsh.erb") %>"
|
|
;;
|
|
update)
|
|
ztool="<%= render_escaped("src/tools/update.zsh.erb") %>"
|
|
;;
|
|
esac
|
|
|
|
case ${1} in
|
|
build) _zimfw_source_zimrc && _zimfw_build && _zimfw_compile ${2} ;;
|
|
clean)
|
|
_zimfw_source_zimrc && \
|
|
_zimfw_clean_modules && \
|
|
_zimfw_clean_compiled && \
|
|
_zimfw_clean_dumpfile
|
|
;;
|
|
clean-modules) _zimfw_source_zimrc && _zimfw_clean_modules ;;
|
|
clean-compiled) _zimfw_clean_compiled ;;
|
|
clean-dumpfile) _zimfw_clean_dumpfile ;;
|
|
compile|login-init) _zimfw_source_zimrc && _zimfw_compile ${2} ;;
|
|
info) _zimfw_info ;;
|
|
install|update)
|
|
_zimfw_source_zimrc || return 1
|
|
print -Rn ${_zmodules_xargs} | xargs -0 -n6 -P10 zsh -c ${ztool} ${1} && \
|
|
if (( ! _zquiet )); then
|
|
print -PR "%F{green}✓%f Done with ${1}. Restart your terminal for any changes to take effect."
|
|
fi && \
|
|
_zimfw_build && _zimfw_compile ${2}
|
|
;;
|
|
upgrade) _zimfw_upgrade ;;
|
|
*)
|
|
print -u2 -PR "%F{red}${0}: Unknown action ${1}%f"$'\n'${zusage}
|
|
return 1
|
|
;;
|
|
esac
|
|
}
|