Skip to main content

Chaos Automation System

Project description

Chaos Automation System

Chaos Automation System (CAS) is a toolkit for automating complex sequences of tasks; generally, Source engine tasks.

Usage

CAS, by default, expects a certain folder structure to be present. You should have a root folder for your project, containing a content folder and a game folder. The former contains your source content, while your latter contains your compiled assets and binaries.

To configure which assets to build, an cas.json file must be present in your content folder. An example of this is present in the examples folder of this repository, which you can copy if you want to provide a template for your project.

You must run CAS from inside your project's root tree; if you need to run it from somewhere else, use the --path argument.

Example:

casbuild --build-category assets

Configuration

CAS executes a series of discrete programs called subsystems. An example of a subsystem is vpk - this allows packing several files into one or more VPK archives.

Build Types and Categories

The build type (--build-type) selects the type of the build you want to perform. This may be one of three values: trunk, staging, or release, and mirrors a multi-branch Git philosophy. The behaviour of this differs depending on the asset or subsystem implementation.

The build categories (--build-categories) define whether assets should be built and what subsystems should run, if any. The default is to build all categories if one is not explicitly specified. If a category different from assets is specified, assets will not be built. The categories of a subsystem can be defined with the categories key.

Expressions and Conditions

CAS has support for conditional statements to include or exclude segments of configuration whenever a condition is met. Specify the conditions inside the block you want to set as a list with the special @conditions key.

CAS also has support for custom expressions with @expressions, to dynamically modify parts of configuration on the fly. Specify this as a set with each key you want to modify. It uses the same syntax as conditions.

Example:

"module": "cas.subsystems.syncfolder",
"category": "publish",
"options": {
    "from": "$(path.root)/game",
    "to": "$(path.root)/publish.tmp",

    "create": true,
    "files": [ "!.git" ],

    "@conditions": ["args.build_type != 'trunk'"]
}

Note that expressions are always evaluated before conditions in the same block.

Local scope

Inside conditions and macros a specific set of names are available in the local scope:

  • parent, the parent object of this value
  • context, the current resolver scope
  • path, args, assets, and subsystems from the configuration file
  • env, a dict containing platform, the system platform, and cpu_count, the number of system CPUs

Installation

You can install CAS with pip. Example: python3 -m pip install cas

Development

  • To install, run python3 ./setup.py develop --user.
  • To remove the development link, run python3 ./setup.py develop --user -u.
  • To publish to PyPi, run publish.sh.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cas-1.0.10.tar.gz (26.5 kB view details)

Uploaded Source

Built Distribution

cas-1.0.10-py3-none-any.whl (43.7 kB view details)

Uploaded Python 3

File details

Details for the file cas-1.0.10.tar.gz.

File metadata

  • Download URL: cas-1.0.10.tar.gz
  • Upload date:
  • Size: 26.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for cas-1.0.10.tar.gz
Algorithm Hash digest
SHA256 ba52bbb3d2a8199c24d1d71be0b16312a5919f06c3140c4bc4b0c352f9c44a65
MD5 cde8f4f9fc694a3cafff89e4d454764b
BLAKE2b-256 86e9b03b3162dae5e3ae808437e4665695bcbd519af41758d7348ad41b83bf69

See more details on using hashes here.

File details

Details for the file cas-1.0.10-py3-none-any.whl.

File metadata

  • Download URL: cas-1.0.10-py3-none-any.whl
  • Upload date:
  • Size: 43.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for cas-1.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 b830e74af4c2f346d21b5925c25f1dacd09e9b5fdd3e9414318eb6b71c5d6dce
MD5 eff53b1cef74ed5d939bdad8c2cd20e1
BLAKE2b-256 499db762d73ee11b0419a9f9d585da61c1645e9c51ef1da99ccb6870de397be1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page