@maximdevoir/create-atc-harness
v1.1.5
Published
Create an Unreal host project (harness) from a plugin `uapkg.json` manifest.
Readme
create-atc-harness
Create an Unreal host project (harness) from a plugin uapkg.json manifest.
What it does
- Reads
uapkg.jsonfrom a local path/folder or a Git repository. - Validates only the required manifest keys:
typemust be"plugin"harnessmust be a string
- Creates a harness project with the selected harness creator.
- Installs/hoists the plugin into the created harness project.
CLI
create-atc-harness <manifestString> [outputRootDirectory] [options]
Positional args
manifestString- Path to
uapkg.json - Path to folder containing
uapkg.json - Git URL to repo with
uapkg.jsonat repo root
- Path to
outputRootDirectory(optional)- Directory where the harness project is created
- If omitted, defaults to:
${atcJsonName}Harnesswhenuapkg.json.nameis present${upluginFileName}Harnesswhennameis missing
Options
--harness=<HarnessCreatorName>- Force a specific harness creator by
HarnessCreator.name(for exampleEngineTemplate,Git)
- Force a specific harness creator by
--engineAssociation=<value>- Engine association key, engine path, or
first
- Engine association key, engine path, or
TypeScript-only usage
This package is source-only TypeScript, so run it through tsx.
From this package directory
pnpm run create-atc-harness -- "<manifestString>" "<outputRootDirectory>" [options]Example:
pnpm run create-atc-harness -- "./MyPlugin/uapkg.json" "./HarnessProject" --harness=EngineTemplate --engineAssociation=firstExample (auto output directory name):
pnpm run create-atc-harness -- "./MyPlugin/uapkg.json"Direct tsx invocation
npx tsx src/cli.ts "<manifestString>" "<outputRootDirectory>" [options]From monorepo root (pnpm filter)
pnpm --filter @maximdevoir/create-atc-harness run create-atc-harness -- "<manifestString>" "<outputRootDirectory>" [options]Notes
- In CI, engine resolution is strict and fails early when required values are missing.
- For Git-based harnesses/manifests, Git LFS is used when
.gitattributescontainsfilter=lfs.
