Skip to content

Commit bcd3e76

Browse files
check parse before moving usage file into place (#3928)
1 parent 0e5835e commit bcd3e76

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/Types.jl

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -620,8 +620,15 @@ function write_env_usage(source_file::AbstractString, usage_filepath::AbstractSt
620620
usage[k] = [Dict("time" => maximum(times))]
621621
end
622622

623-
open(usage_file, "w") do io
624-
TOML.print(io, usage, sorted=true)
623+
tempfile = tempname()
624+
try
625+
open(tempfile, "w") do io
626+
TOML.print(io, usage, sorted=true)
627+
end
628+
TOML.parsefile(tempfile) # compare to `usage` ?
629+
mv(tempfile, usage_file; force=true) # only mv if parse succeeds
630+
catch err
631+
@error "Failed to write valid usage file `$usage_file`" tempfile
625632
end
626633
end
627634
return

0 commit comments

Comments
 (0)