@@ -16,20 +16,17 @@ static ox::Error convertFile(
|
||||
ox::TypeStore &ts,
|
||||
ox::StringViewCR path,
|
||||
ox::ClawFormat const fmt) noexcept {
|
||||
ox::Buffer buff;
|
||||
ox::ModelObject obj;
|
||||
ox::UUID uuid;
|
||||
OX_RETURN_ERROR(fs.read(path).moveTo(buff).reoriginate(1, "unable to read file"));
|
||||
OX_RETURN_ERROR(keel::readUuidHeader(buff).moveTo(uuid));
|
||||
OX_RETURN_ERROR(keel::readAsset(ts, buff).moveTo(obj).reoriginate(1, "unable to parse file"));
|
||||
OX_REQUIRE_M(buff, fs.read(path).reoriginate(1, "unable to read file"));
|
||||
OX_REQUIRE(uuid, keel::readUuidHeader(buff));
|
||||
OX_REQUIRE(obj, keel::readAsset(ts, buff).reoriginate(1, "unable to parse file"));
|
||||
buff.clear();
|
||||
ox::BufferWriter wrtr{&buff};
|
||||
OX_RETURN_ERROR(keel::writeUuidHeader(wrtr, uuid));
|
||||
OX_RETURN_ERROR(ox::writeClaw(obj, wrtr, fmt));
|
||||
ox::BufferWriter writer{&buff};
|
||||
OX_RETURN_ERROR(keel::writeUuidHeader(writer, uuid));
|
||||
OX_RETURN_ERROR(ox::writeClaw(obj, writer, fmt));
|
||||
if (fmt == ox::ClawFormat::Organic) {
|
||||
*buff.back().value = '\n';
|
||||
}
|
||||
OX_RETURN_ERROR(wrtr.write(buff.data(), buff.size()));
|
||||
OX_RETURN_ERROR(writer.write(buff.data(), buff.size()));
|
||||
OX_RETURN_ERROR(fs.write(path, buff).reoriginate(1, "unable to write file"));
|
||||
return {};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user