[studio] Change output of Claw OC files to make them recognizable as test files

This commit is contained in:
2026-05-17 14:53:42 -05:00
parent d1e410ac55
commit 72e16cb285
2 changed files with 14 additions and 5 deletions
@@ -18,9 +18,18 @@ static ox::Error convertFile(
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_RETURN_ERROR(ox::writeClaw(obj, fmt).moveTo(buff));
buff.clear();
ox::BufferWriter wrtr{&buff};
OX_RETURN_ERROR(keel::writeUuidHeader(wrtr, uuid));
OX_RETURN_ERROR(ox::writeClaw(obj, wrtr, fmt));
if (fmt == ox::ClawFormat::Organic) {
*buff.back().value = '\n';
}
OX_RETURN_ERROR(wrtr.write(buff.data(), buff.size()));
OX_RETURN_ERROR(fs.write(path, buff).reoriginate(1, "unable to write file"));
return {};
}
@@ -31,12 +40,12 @@ static void printUsage() noexcept {
[[nodiscard]]
static constexpr ox::Result<ox::ClawFormat> getFmt(ox::StringViewCR fmtStr) noexcept {
if (fmtStr == "mc") {
if (caseInsensitiveEquals(fmtStr, "mc") == 0) {
return ox::ClawFormat::Metal;
} else if (fmtStr == "oc") {
} else if (caseInsensitiveEquals(fmtStr, "oc") == 0) {
return ox::ClawFormat::Organic;
}
return ox::Error(1, "invalid format");
return ox::Error{1, "invalid format"};
}
ox::Error cmdChangeFormat(Project &project, ox::SpanView<ox::CString> const args) noexcept {
@@ -165,7 +165,7 @@ template<typename T>
ox::Error Project::writeObj(ox::StringViewCR path, T const &obj, ox::ClawFormat fmt) noexcept {
OX_REQUIRE_M(buff, ox::writeClaw(obj, fmt));
if (fmt == ox::ClawFormat::Organic) {
buff.pop_back();
*buff.back().value = '\n';
}
// write to FS
OX_RETURN_ERROR(mkdir(parentDir(path)));