5#include "absl/strings/str_cat.h"
6#include "absl/strings/str_format.h"
7#include "absl/strings/str_join.h"
16namespace fs = std::filesystem;
27 return absl::FailedPreconditionError(
"Project context not available.");
30 std::string query_type = parser.
GetString(
"query").value();
32 if (query_type ==
"info") {
34 }
else if (query_type ==
"files") {
37 }
else if (query_type ==
"symbols") {
39 return absl::FailedPreconditionError(
40 "Asar wrapper not available for symbols query.");
44 return absl::InvalidArgumentError(
45 absl::StrCat(
"Unknown query type: ", query_type));
60 return absl::OkStatus();
66 if (!fs::exists(abs_path)) {
67 return absl::NotFoundError(absl::StrCat(
"Path not found: ", path));
71 for (
const auto& entry : fs::directory_iterator(abs_path)) {
73 formatter.
AddField(
"name", entry.path().filename().string());
74 formatter.
AddField(
"type", entry.is_directory() ?
"directory" :
"file");
80 return absl::OkStatus();
86 if (symbols.empty()) {
87 return absl::NotFound(
88 "No symbols loaded. Load symbols via the Assemble menu or ensure the "
89 "build script generates them.");
93 for (
const auto& [
name, symbol] : symbols) {
95 formatter.
AddField(
"name", symbol.name);
96 formatter.
AddField(
"address", absl::StrFormat(
"$%06X", symbol.address));
100 return absl::OkStatus();
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Utility for parsing common CLI argument patterns.
std::optional< std::string > GetString(const std::string &name) const
Parse a named argument (e.g., –format=json or –format json)
absl::Status RequireArgs(const std::vector< std::string > &required) const
Validate that required arguments are present.
core::AsarWrapper * asar_wrapper_
project::YazeProject * project_
std::map< std::string, AsarSymbol > GetSymbolTable() const
std::string git_repository
std::string GetRelativePath(const std::string &absolute_path) const
std::string GetAbsolutePath(const std::string &relative_path) const
std::string last_build_hash
std::string symbols_filename