first commit
This commit is contained in:
commit
0610f4aeab
130 changed files with 9897 additions and 0 deletions
41
fn/-z4h-compile
Normal file
41
fn/-z4h-compile
Normal file
|
@ -0,0 +1,41 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
# Runs with user options.
|
||||
#
|
||||
# Precondition: [[ -e $1 ]].
|
||||
|
||||
local -a stat
|
||||
|
||||
# Checking [[ -e "$1".zwc ]] is faster than redirecting stderr of zstat to /dev/null.
|
||||
[[ -e "$1".zwc ]] && zstat +mtime -A stat -- "$1" "$1".zwc && {
|
||||
# Negative indices to handle ksh_arrays.
|
||||
(( stat[-1] == stat[-2] + 1 )) && return # common case
|
||||
stat[-1]=()
|
||||
} || {
|
||||
zstat +mtime -A stat -- "$1" || return
|
||||
}
|
||||
|
||||
[[ -w "${1:h}" ]] || return
|
||||
|
||||
local t
|
||||
builtin strftime -s t '%Y%m%d%H%M.%S' $((stat + 1))
|
||||
|
||||
local tmp="$1".tmp."${sysparams[pid]}".zwc
|
||||
{
|
||||
# This zf_rm is to work around bugs in NTFS and/or WSL. The following code fails there:
|
||||
#
|
||||
# touch a b
|
||||
# chmod -w b
|
||||
# zf_rm -f a b
|
||||
#
|
||||
# The last command produces this error:
|
||||
#
|
||||
# zf_mv: a: permission denied
|
||||
(( !_z4h_dangerous_root )) &&
|
||||
zcompile -R -- "$tmp" "$1" &&
|
||||
command touch -ct $t -- "$tmp" &&
|
||||
zf_rm -f -- "$1".zwc &&
|
||||
zf_mv -f -- "$tmp" "$1".zwc
|
||||
} always {
|
||||
(( $? )) && zf_rm -f -- "$tmp" "$1".zwc 2>/dev/null
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue