Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 18 additions & 5 deletions arenabuddy/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,30 @@ To get started with the ArenaBuddy development environment, follow these steps:

3. CLI Tool:

The consolidated CLI tool provides functionality for log parsing, card scraping:
The consolidated CLI tool (`arenabuddyctl`) provides functionality for log parsing, card scraping, and more:

```bash
# Scrape card data from online sources
arenabuddy scrape
# Scrape card data from local MTGA database + Scryfall enrichment
# (auto-detects MTGA install path on macOS/Windows/Linux)
cargo run -p arenabuddy_cli -- scrape-mtga --output ./cards.pb

# Optionally specify a custom MTGA install path
cargo run -p arenabuddy_cli -- scrape-mtga --mtga-path /path/to/MTGA/.../Raw --output ./cards.pb

# Scrape card data from online sources (17Lands + Scryfall)
cargo run -p arenabuddy_cli -- scrape --output ./cards.pb

# Parse MTGA log files
arenabuddy parse --player-log /path/to/Player.log
cargo run -p arenabuddy_cli -- parse --player-log /path/to/Player.log

# Start interactive REPL for card searches
cargo run -p arenabuddy_cli -- repl --cards-db ./cards.pb

# Generate structured event log from a Player.log
cargo run -p arenabuddy_cli -- event-log --player-log /path/to/Player.log
```

You can get help on any command with `arenabuddy --help` or `arenabuddy <command> --help`.
You can get help on any command with `cargo run -p arenabuddy_cli -- --help` or `cargo run -p arenabuddy_cli -- <command> --help`.

4. Project Structure:

Expand Down
2 changes: 1 addition & 1 deletion arenabuddy/cli/src/commands/scrape_mtga.rs
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ fn find_mtga_database(mtga_path: Option<&PathBuf>) -> Result<PathBuf> {
let path = entry.path();
if let Some(name) = path.file_name().and_then(|n| n.to_str())
&& name.starts_with("Raw_CardDatabase_")
&& path.extension().is_some_and(|ext| ext.eq_ignore_ascii_case("rs"))
&& path.extension().is_some_and(|ext| ext.eq_ignore_ascii_case("mtga"))
{
return Ok(path);
}
Expand Down