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