2019-01-22 19:40:43 -05:00
|
|
|
zimfw() {
|
2020-01-13 13:14:31 -05:00
|
|
|
local -r _zversion='<%= version %>'
|
|
|
|
local -r zusage="Usage: %B${0}%b <action> [%B-q%b|%B-v%b]
|
2019-01-22 19:40:43 -05:00
|
|
|
|
2019-12-01 16:00:47 -05:00
|
|
|
Actions:
|
2020-01-02 12:23:32 -05:00
|
|
|
%Bbuild%b Build init.zsh and login_init.zsh
|
2019-12-01 16:00:47 -05:00
|
|
|
%Bclean%b Clean all (see below)
|
|
|
|
%Bclean-compiled%b Clean Zsh compiled files
|
|
|
|
%Bclean-dumpfile%b Clean completion dump file
|
|
|
|
%Bcompile%b Compile Zsh files
|
2020-01-13 12:24:43 -05:00
|
|
|
%Bhelp%b Print this help
|
2019-12-01 16:00:47 -05:00
|
|
|
%Binfo%b Print Zim and system info
|
|
|
|
%Binstall%b Install new modules
|
2019-12-10 18:19:01 -05:00
|
|
|
%Buninstall%b Delete unused modules
|
2019-12-01 16:00:47 -05:00
|
|
|
%Bupdate%b Update current modules
|
2020-01-02 13:05:53 -05:00
|
|
|
%Bupgrade%b Upgrade zimfw.zsh
|
2020-01-13 12:24:43 -05:00
|
|
|
%Bversion%b Print Zim version
|
2019-12-01 16:00:47 -05:00
|
|
|
|
|
|
|
Options:
|
|
|
|
%B-q%b Quiet, only outputs errors
|
2020-01-11 16:23:11 -05:00
|
|
|
%B-v%b Verbose
|
2019-12-01 16:00:47 -05:00
|
|
|
"
|
|
|
|
local ztool _zmodules_xargs
|
|
|
|
local -a _zdisableds _zmodules _zfpaths _zfunctions _zscripts
|
2020-01-11 16:23:11 -05:00
|
|
|
local -i _zprintlevel=1
|
2019-12-01 16:00:47 -05:00
|
|
|
if (( # > 2 )); then
|
2020-01-13 13:14:31 -05:00
|
|
|
print -u2 -PR "%F{red}${0}: Too many options%f"$'\n\n'${zusage}
|
2019-12-01 16:00:47 -05:00
|
|
|
return 1
|
|
|
|
elif (( # > 1 )); then
|
|
|
|
case ${2} in
|
2020-01-11 16:23:11 -05:00
|
|
|
-q) _zprintlevel=0 ;;
|
|
|
|
-v) _zprintlevel=2 ;;
|
2019-12-01 16:00:47 -05:00
|
|
|
*)
|
2020-01-13 13:14:31 -05:00
|
|
|
print -u2 -PR "%F{red}${0}: Unknown option ${2}%f"$'\n\n'${zusage}
|
2019-12-01 16:00:47 -05:00
|
|
|
return 1
|
|
|
|
;;
|
|
|
|
esac
|
2019-01-22 19:40:43 -05:00
|
|
|
fi
|
|
|
|
|
2020-01-15 12:35:30 -05:00
|
|
|
if ! zstyle -t ':zim' disable-version-check; then
|
|
|
|
_zimfw_version_check
|
2020-01-13 13:14:31 -05:00
|
|
|
fi
|
|
|
|
|
2019-01-22 19:40:43 -05:00
|
|
|
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
|
2020-01-11 16:23:11 -05:00
|
|
|
build)
|
|
|
|
_zimfw_source_zimrc && _zimfw_build || return 1
|
|
|
|
(( _zprintlevel-- ))
|
|
|
|
_zimfw_compile
|
|
|
|
;;
|
2019-12-07 21:17:40 -05:00
|
|
|
init) _zimfw_source_zimrc && _zimfw_build ;;
|
2019-12-14 22:21:34 -05:00
|
|
|
clean) _zimfw_clean_compiled && _zimfw_clean_dumpfile ;;
|
2019-12-01 16:00:47 -05:00
|
|
|
clean-compiled) _zimfw_clean_compiled ;;
|
|
|
|
clean-dumpfile) _zimfw_clean_dumpfile ;;
|
2020-01-11 16:23:11 -05:00
|
|
|
compile) _zimfw_build_login_init && _zimfw_compile ;;
|
2020-01-13 13:14:31 -05:00
|
|
|
help) print -PR ${zusage} ;;
|
2019-12-01 16:00:47 -05:00
|
|
|
info) _zimfw_info ;;
|
2019-01-22 19:40:43 -05:00
|
|
|
install|update)
|
2019-12-03 07:07:59 -05:00
|
|
|
_zimfw_source_zimrc 1 || return 1
|
2019-12-01 16:00:47 -05:00
|
|
|
print -Rn ${_zmodules_xargs} | xargs -0 -n6 -P10 zsh -c ${ztool} ${1} && \
|
2020-01-11 16:23:11 -05:00
|
|
|
_zimfw_print -PR "<%= done %>Done with ${1}. Restart your terminal for any changes to take effect." || return 1
|
|
|
|
(( _zprintlevel-- ))
|
|
|
|
_zimfw_source_zimrc && _zimfw_build && _zimfw_compile
|
2019-01-22 19:40:43 -05:00
|
|
|
;;
|
2019-12-10 18:19:01 -05:00
|
|
|
uninstall) _zimfw_source_zimrc && _zimfw_uninstall ;;
|
2020-01-11 16:23:11 -05:00
|
|
|
upgrade)
|
|
|
|
_zimfw_upgrade || return 1
|
|
|
|
(( _zprintlevel-- ))
|
2020-01-13 15:00:09 -05:00
|
|
|
_zimfw_compile
|
2020-01-11 16:23:11 -05:00
|
|
|
;;
|
2020-01-13 13:14:31 -05:00
|
|
|
version) print -PR ${_zversion} ;;
|
2019-01-22 19:40:43 -05:00
|
|
|
*)
|
2020-01-13 13:14:31 -05:00
|
|
|
print -u2 -PR "%F{red}${0}: Unknown action ${1}%f"$'\n\n'${zusage}
|
2019-01-22 19:40:43 -05:00
|
|
|
return 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
}
|