use mktemp to prevent file clobbering (d'oh!). closes #9
This commit is contained in:
1 parent
3f418bab5d
commit
5142b69212
1 file changed
+7
-5
@@ -32,6 +32,7 @@ z() {
|
||||
[ "$*" = "$HOME" ] && return
|
||||
|
||||
# maintain the file
|
||||
local tempfile="$(mktemp $datafile.XXXXXX)" || return
|
||||
awk -v path="$*" -v now="$(date +%s)" -F"|" '
|
||||
BEGIN {
|
||||
rank[path] = 1
|
||||
@@ -52,8 +53,8 @@ z() {
|
||||
for( i in rank ) print i "|" 0.9*rank[i] "|" time[i] # aging
|
||||
} else for( i in rank ) print i "|" rank[i] "|" time[i]
|
||||
}
|
||||
' "$datafile" 2>/dev/null > "$datafile.tmp"
|
||||
mv -f "$datafile.tmp" "$datafile"
|
||||
' "$datafile" 2>/dev/null > "$tempfile"
|
||||
mv -f "$tempfile" "$datafile"
|
||||
|
||||
# tab completion
|
||||
elif [ "$1" = "--complete" ]; then
|
||||
@@ -92,7 +93,8 @@ z() {
|
||||
# no file yet
|
||||
[ -f "$datafile" ] || return
|
||||
|
||||
local cd="$(awk -v t="$(date +%s)" -v list="$list" -v typ="$typ" -v q="$fnd" -v tmpfl="$datafile.tmp" -F"|" '
|
||||
local tempfile="$(mktemp $datafile.XXXXXX)" || return
|
||||
local cd="$(awk -v t="$(date +%s)" -v list="$list" -v typ="$typ" -v q="$fnd" -v tmpfl="$tempfile" -F"|" '
|
||||
function frecent(rank, time) {
|
||||
dx = t-time
|
||||
if( dx < 3600 ) return rank*4
|
||||
@@ -153,9 +155,9 @@ z() {
|
||||
}
|
||||
' "$datafile")"
|
||||
if [ $? -gt 0 ]; then
|
||||
rm -f "$datafile.tmp"
|
||||
rm -f "$tempfile"
|
||||
else
|
||||
mv -f "$datafile.tmp" "$datafile"
|
||||
mv -f "$tempfile" "$datafile"
|
||||
[ "$cd" ] && cd "$cd"
|
||||
fi
|
||||
fi
|
||||
|
||||
Reference in new issue
Block a user