first commit
This commit is contained in:
commit
0610f4aeab
130 changed files with 9897 additions and 0 deletions
82
fn/-z4h-cmd-update
Normal file
82
fn/-z4h-cmd-update
Normal file
|
@ -0,0 +1,82 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
eval "$_z4h_opt"
|
||||
-z4h-check-core-params || return
|
||||
|
||||
if (( ARGC )); then
|
||||
print -Pru2 -- '%F{3}z4h%f: unexpected %F{1}update%f argument'
|
||||
return '_z4h_err()'
|
||||
fi
|
||||
|
||||
if (( _z4h_dangerous_root )); then
|
||||
print -Pru2 -- "%F{3}z4h%f: refusing to %Bupdate%b as %F{1}root%f"
|
||||
return 1
|
||||
fi
|
||||
|
||||
local old=$Z4H.old.$$
|
||||
local new=$Z4H.new.$$
|
||||
|
||||
{
|
||||
zf_rm -rf -- $old $new || return
|
||||
zf_mkdir -p -- $new || return
|
||||
print -n >$new/.updating || return
|
||||
|
||||
Z4H_UPDATING=$Z4H Z4H=$new </dev/null >/dev/null $_z4h_exe -ic '
|
||||
(( $? )) && "exit" "1"
|
||||
"builtin" "emulate" "zsh" "-o" "no_aliases"
|
||||
[[ $Z4H == '${(q)new}' ]] || exit 0
|
||||
print -n >$Z4H/tmp/update-successful' || return
|
||||
|
||||
if [[ ! -e $new/tmp/update-successful ]]; then
|
||||
local home=~
|
||||
local zdotdir=${${${(q)ZDOTDIR}/#${(q)home}/'~'}//\%/%%}
|
||||
local z4h=${${${(q)Z4H}/#${(q)home}/'~'}//\%/%%}
|
||||
print -Pru2 -- '%F{3}z4h%f: %B$Z4H%b %F{1}does not propagate%f through %U.zshrc%u'
|
||||
print -Pru2 -- ''
|
||||
print -Pru2 -- 'Change %U'$zdotdir'/.zshrc%u to keep %BZ4H%b intact if already set.'
|
||||
print -Pru2 -- ''
|
||||
print -Pru2 -- 'For example:'
|
||||
print -Pru2 -- ''
|
||||
print -Pru2 -- ' %F{2}:%f %F{3}"${Z4H:=${XDG_CACHE_HOME:-$HOME/.cache}/zsh4humans}"%f'
|
||||
print -Pru2 -- ''
|
||||
print -Pru2 -- 'Note: The leading colon (%F{2}:%f) is necessary.'
|
||||
return 1
|
||||
fi
|
||||
|
||||
zf_rm -- $new/tmp/update-successful || return
|
||||
zf_rm -- $new/.updating || return
|
||||
-z4h-mv $Z4H $old 2>/dev/null || zf_rm -rf -- $Z4H || return
|
||||
if [[ -e $Z4H ]]; then
|
||||
local home=~
|
||||
local z4h=${${${(q)Z4H}/#${(q)home}/'~'}//\%/%%}
|
||||
print -Pru2 -- '%F{3}z4h%f: %F{1}cannot delete %U'$z4h'%u%f'
|
||||
print -Pru2 -- ''
|
||||
print -Pru2 -- 'This might help:'
|
||||
print -Pru2 -- ''
|
||||
print -Pru2 -- ' %F{2}%Ucommand%u %Usudo%u rm%f -rf -- %U'$z4h'%u && %U%F{2}exec%u zsh%f'
|
||||
print -Pru2 -- ''
|
||||
print -Pru2 -- '%F{3}z4h%f: attempting to recover'
|
||||
if [[ ! -e $Z4H/stickycache ]]; then
|
||||
command cp -r -- $new/stickycache $Z4H/stickycache || true
|
||||
fi
|
||||
if [[ -o zle ]]; then
|
||||
exec -- $_z4h_exe -i || return
|
||||
else
|
||||
exec -- $_z4h_exe -i --no-zle || return
|
||||
fi
|
||||
fi
|
||||
-z4h-mv $new $Z4H || return
|
||||
} always {
|
||||
if (( $? )); then
|
||||
-z4h-error-command update
|
||||
fi
|
||||
zf_rm -rf -- $old $new || return
|
||||
}
|
||||
|
||||
print -Pru2 -- "%F{3}z4h%f: %Bupdate successful%b"
|
||||
print -Pru2 -- "%F{3}z4h%f: restarting %F{2}zsh%f"
|
||||
if [[ -o zle ]]; then
|
||||
exec -- $_z4h_exe -i || return
|
||||
else
|
||||
exec -- $_z4h_exe -i --no-zle || return
|
||||
fi
|
Loading…
Add table
Add a link
Reference in a new issue