mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
gce: make append_or_replace.. atomic
Before this change, * the final echo is not atomically written to the target file * two concurrent callers will use the same tempfile
This commit is contained in:
parent
a1c0510d00
commit
1c2feb02fa
@ -239,10 +239,13 @@ function append_or_replace_prefixed_line {
|
||||
local -r file="${1:-}"
|
||||
local -r prefix="${2:-}"
|
||||
local -r suffix="${3:-}"
|
||||
local -r dirname="$(dirname ${file})"
|
||||
local -r tmpfile="$(mktemp -t filtered.XXXX --tmpdir=${dirname})"
|
||||
|
||||
touch "${file}"
|
||||
awk "substr(\$0,0,length(\"${prefix}\")) != \"${prefix}\" { print }" "${file}" > "${file}.filtered" && mv "${file}.filtered" "${file}"
|
||||
echo "${prefix}${suffix}" >> "${file}"
|
||||
awk "substr(\$0,0,length(\"${prefix}\")) != \"${prefix}\" { print }" "${file}" > "${tmpfile}"
|
||||
echo "${prefix}${suffix}" >> "${tmpfile}"
|
||||
mv "${tmpfile}" "${file}"
|
||||
}
|
||||
|
||||
function create-node-pki {
|
||||
|
Loading…
Reference in New Issue
Block a user