WarHub.ArmouryModel
library andwham
tool
Foundational .NET library for wargame datafile tools, written in C#.
This is the home of the WarHub.ArmouryModel
library handling wargame roster and data files.
It consists of:
wham
- a CLI tool (Command Line) used to manage, convert and publish datafiles,
distributed as .NET Global Tool (.NET SDK v7+ required)WarHub.ArmouryModel.Source
library provides API to manage and interact
with wargaming data files (game systems, catalogues) and rosters.WarHub.ArmouryModel.Source.BattleScribe
provides convenient methods to load and save
BattleScribe XML datafiles.WarHub.ArmouryModel.ProjectModel
library provides API to operate on wham workspaces (abstraction)
and their configuration (.whamproj
configuration files).WarHub.ArmouryModel.Workspaces.BattleScribe
implements project model for BattleScribe format.WarHub.ArmouryModel.Workspaces.Gitree
implements project model for gitree where
directory and file structure is a part of datafile shape, building datafile from massive amounts
of tiny files. It's mostly designed to work well with VCS (Version Control Systems) such as git.All libraries, unless otherwise specifed, target .NET 6
.
There are also test projects and WarHub.ArmouryModel.Source.CodeGeneration
project which contains
code generator used to build .Source
library. This code generator uses C# Source Generators.
wham
installationTo install wham
command line tool:
.NET SDK
v7
for your platform.dotnet tool install wham -g
wham --version
should show what version exactly is running.This will install preview of wham
CLI tool in your user-space (not system global),
and so it doesn't require root/admin permissions. (Although installation of .NET SDK can).
wham
features.cat
/.catz
/.gst
/.gstz
)
into gitree workspace (mutliple small files in directory trees) that
behaves with git well..bsr
repository distribution package - zip archive containing datafiles (.cat
and .gst
)
and DataIndex index.xml
file.index.bsi
which is DataIndex index.xml
-containing zip archive.index.xml
DataIndex..cat
/.gst
datafiles.catz
/.gstz
zipped datafileswham
usageYou can always run wham -?
or wham -h
or wham [action] -?
to get help about the tool/action.
The development branch is the main
branch. Stable releases are marked via vX.Y.Z
tags.
This project uses Nerdbank.GitVersioning
package that automatically generates version numbers
for assemblies and packages from git tree. It won't work if the git clone is shallow or otherwise
incomplete.
The library is MIT licensed (license in repo root). Created by Amadeusz Sadowski (@amis92). BattleScribe name is used without permission under fair-use laws.