Commit 1c2feb02 authored by Mike Danese's avatar Mike Danese

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
parent a1c0510d
...@@ -239,10 +239,13 @@ function append_or_replace_prefixed_line { ...@@ -239,10 +239,13 @@ function append_or_replace_prefixed_line {
local -r file="${1:-}" local -r file="${1:-}"
local -r prefix="${2:-}" local -r prefix="${2:-}"
local -r suffix="${3:-}" local -r suffix="${3:-}"
local -r dirname="$(dirname ${file})"
local -r tmpfile="$(mktemp -t filtered.XXXX --tmpdir=${dirname})"
touch "${file}" touch "${file}"
awk "substr(\$0,0,length(\"${prefix}\")) != \"${prefix}\" { print }" "${file}" > "${file}.filtered" && mv "${file}.filtered" "${file}" awk "substr(\$0,0,length(\"${prefix}\")) != \"${prefix}\" { print }" "${file}" > "${tmpfile}"
echo "${prefix}${suffix}" >> "${file}" echo "${prefix}${suffix}" >> "${tmpfile}"
mv "${tmpfile}" "${file}"
} }
function create-node-pki { function create-node-pki {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment