zimfw() { builtin emulate -L zsh -o EXTENDED_GLOB local -r _zversion='<%= version %>' _zversion_target=${ZIM_HOME}/.latest_version zusage=$'Usage: <%= bold %>'${0}$'<%= normal %> [<%= bold %>-q<%= normal %>|<%= bold %>-v<%= normal %>] Actions: <%= bold %>build<%= normal %> Build <%= bold %>'${ZIM_HOME}$'/init.zsh<%= normal %> and <%= bold %>'${ZIM_HOME}$'/login_init.zsh<%= normal %>. Also does <%= bold %>compile<%= normal %>. Use <%= bold %>-v<%= normal %> to also see its output. <%= bold %>clean<%= normal %> Clean all. Does both <%= bold %>clean-compiled<%= normal %> and <%= bold %>clean-dumpfile<%= normal %>. <%= bold %>clean-compiled<%= normal %> Clean Zsh compiled files. <%= bold %>clean-dumpfile<%= normal %> Clean completion dumpfile. <%= bold %>compile<%= normal %> Compile Zsh files. <%= bold %>help<%= normal %> Print this help. <%= bold %>info<%= normal %> Print zimfw and system info. <%= bold %>list<%= normal %> List all modules currently defined in <%= bold %>'${ZIM_CONFIG_FILE:-<%= home %>/.zimrc}$'<%= normal %>. Use <%= bold %>-v<%= normal %> to also see the modules details. <%= bold %>init<%= normal %> Same as <%= bold %>install<%= normal %>, but with output tailored to be used at terminal startup. <%= bold %>install<%= normal %> Install new modules. Also does <%= bold %>build<%= normal %>, <%= bold %>compile<%= normal %>. Use <%= bold %>-v<%= normal %> to also see their output, any on-pull output and skipped modules. <%= bold %>uninstall<%= normal %> Delete unused modules. Prompts for confirmation. Use <%= bold %>-q<%= normal %> for quiet uninstall. <%= bold %>check<%= normal %> Check if updates for current modules are available. Use <%= bold %>-v<%= normal %> to also see skipped and up to date modules. <%= bold %>update<%= normal %> Update current modules. Also does <%= bold %>build<%= normal %>, <%= bold %>compile<%= normal %>. Use <%= bold %>-v<%= normal %> to also see their output, any on-pull output and skipped modules. <%= bold %>check-version<%= normal %> Check if a new version of zimfw is available. <%= bold %>upgrade<%= normal %> Upgrade zimfw. Also does <%= bold %>compile<%= normal %>. Use <%= bold %>-v<%= normal %> to also see its output. <%= bold %>version<%= normal %> Print zimfw version. Options: <%= bold %>-q<%= normal %> Quiet (yes to prompts and only outputs errors) <%= bold %>-v<%= normal %> Verbose (outputs more details)' local -Ua _znames _zroot_dirs _zdisabled_root_dirs local -A _zfrozens _ztools _zdirs _zurls _ztypes _zrevs _zsubmodules _zonpulls _zifs local -a _zfpaths _zfunctions _zcmds _zunused_dirs local -i _zprintlevel=1 if (( # > 2 )); then print -u2 -lR $'<%= red %>'${0}$': Too many options<%= normal %>' '' ${zusage} return 2 elif (( # > 1 )); then case ${2} in -q) _zprintlevel=0 ;; -v) _zprintlevel=2 ;; *) print -u2 -lR $'<%= red %>'${0}': Unknown option '${2}$'<%= normal %>' '' ${zusage} return 2 ;; esac fi if ! zstyle -t ':zim' disable-version-check && [[ ${1} != check-version ]]; then # If .latest_version does not exist or was not modified in the last 30 days [[ -f ${_zversion_target}(#qNm-30) ]]; local -r zversion_check_force=${?} _zimfw_check_version ${zversion_check_force} 1 fi local _zrestartmsg=' Restart your terminal for changes to take effect.' case ${1} in build) _zimfw_source_zimrc 2 && _zimfw_build || return 1 (( _zprintlevel-- )) _zimfw_compile ;; check-dumpfile) _zimfw_check_dumpfile ;; clean) _zimfw_source_zimrc 2 && _zimfw_clean_compiled && _zimfw_clean_dumpfile ;; clean-compiled) _zimfw_source_zimrc 2 && _zimfw_clean_compiled ;; clean-dumpfile) _zimfw_clean_dumpfile ;; compile) _zimfw_source_zimrc 2 && _zimfw_compile ;; help) print -R ${zusage} ;; info) _zimfw_info ;; list) _zimfw_source_zimrc 3 && zargs -n 1 -- "${_znames[@]}" -- _zimfw_run_list && \ _zimfw_list_unuseds ' (unused)' ;; check) _zrestartmsg= _zimfw_run_tool_action ${1} || return 1 (( _zprintlevel-- )) _zimfw_print -R "Done with ${1}." # Only printed in verbose mode ;; init) _zrestartmsg= _zimfw_run_tool_action install || return 1 (( _zprintlevel-- )) _zimfw_print 'Done with install.' # Only printed in verbose mode _zimfw_source_zimrc 2 && _zimfw_build && _zimfw_compile ;; install|update) _zimfw_run_tool_action ${1} || return 1 _zimfw_print -R "Done with ${1}.${_zrestartmsg}" (( _zprintlevel-- )) _zimfw_source_zimrc 2 && _zimfw_build && _zimfw_compile ;; uninstall) _zimfw_source_zimrc 2 && _zimfw_list_unuseds && _zimfw_uninstall ;; check-version) _zimfw_check_version 1 ;; upgrade) _zimfw_upgrade || return 1 (( _zprintlevel-- )) _zimfw_source_zimrc 2 && _zimfw_compile ;; version) print -R ${_zversion} ;; *) print -u2 -lR $'<%= red %>'${0}': Unknown action '${1}$'<%= normal %>' '' ${zusage} return 2 ;; esac }