massivebird / arcstat

Generate digital game archives statistics

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

arcstat

short for "archive search"

My command line utility for analyzing video game archives!

πŸ¦€ written in Rust

What does arcstat do?

Arcstat provides a summary of each game system in your archive, which includes per system:

  • Number of games
  • Cumulative storage size

What is a valid video game archive?

A valid archive file system structure should follow these general rules:

  • Contains a config.yaml in the archive root (see: Customization)
  • Immediate root subdirectories represent individual game systems
  • Files in system directories represent individual games
    • These games can be either be files or directories

Here is an example of a valid archive structure:

/game/archive/root
β”œβ”€β”€ ds
β”‚   β”œβ”€β”€ game-1.nds
β”‚   β”œβ”€β”€ game-2.nds
β”‚   └── game-3.nds
β”œβ”€β”€ wii
β”‚   β”œβ”€β”€ game-1-dir
β”‚   β”‚   └── game-1-0.wbfs
β”‚   └── game-2-dir
β”‚       β”œβ”€β”€ game-2-0.wbfs
β”‚       └── game-2-1.wbfs
└── config.yaml

Tip

While it is possible to place system directories multiple levels below the archive root (such as in root/systems/consoles/ps2), I do not recommend nesting system directories. This may generate undesirable results.

Building

To manually build the project, you must first install Rust.

Once you have Rust installed, run the following commands:

git clone https://github.com/massivebird/arcstat
cd arcstat
cargo run # runs unoptimized build

Adding arcstat to your PATH

If you want to add arcstat to your PATH, I recommend building it in release mode for better optimization.

cd arcstat
# build release mode
cargo build --release
# add arcstat to your PATH
ln -rs ./target/release/arcstat <dir-in-PATH>/arcstat
# run arcstat
arcstat

Usage

Basic arcstat syntax is simple! You can run it without any arguments:

arcstat

For information on all its optional arguments, run arcstat --help.

Locating your archive

To find your archive, arcstat defaults to reading the environment variable VG_ARCHIVE.

You can also provide this path from the command line:

arcstat --archive-path /path/to/archive

Customization

Arcstat looks for a config.yaml file in the root of your archive. This configuration file tells arcstat where and how to look for games!

For a quickstart on YAML syntax, click here.

Here is an example configuration:

# config.yaml
systems:
  ds: # system "label" β€” call it whatever you want!
    display_name: "DS"
    color: [135,215,255]
    path: "ds" # path relative to archive root
    games_are_directories: false # are games stored as directories?
  snes:
    display_name: "SNES"
    color: [95,0,255]
    path: "snes"
    games_are_directories: false
  wii:
    display_name: "WII"
    color: [0,215,255]
    path: "wbfs"
    games_are_directories: true

Other arcosystem projects

Arcstat belongs to a family of projects called the arcosystem!

Check out some other arcosystem projects:

About

Generate digital game archives statistics

License:GNU General Public License v3.0


Languages

Language:Rust 100.0%