Table of Contents
XMach - X(.O) (make) mach(inery).
Cross-platform task runner with current implementation in Python.
About
XMach is a minimalist, cross-platform task runner that allows to define and execute custom actions through a plugin-like system.
It provides a command-line interface for running tasks, managing configuration, and extending functionality through Python scripts.
Features
- cross-platform task execution
- extensible action system through python scripts
- built-in actions (ie for listing tasks and configuration management)
- environment variable support
- parallel job execution support
- plugin-like architecture with `xmach.d` directory
Installation
Pip under user
pip install --break-system-packages --user xmach-app
Usage
Basic Commands
# List available actions
xmach list
# Write default configuration file
xmach write-default-config
# Run custom actions
xmach my-action arg1 arg2
# Run multiple actions
xmach action1,action2 arg1 arg2
# Run with multiple jobs
xmach my-action --jobs 4
Configuration and extension
XMach looks for configuration in the `xmach.d` directory:
xmach-config.json- main configuration filexmach-config.example.json- example configuration templatexmach_*.py- python files containing custom action definitions
Configuration File Format
{
"environment": {
"CUSTOM_VAR": "value"
},
"scons_args": {
"parameter": "value"
}
}
Custom Actions
Create Python files in the xmach.d directory with names like xmach_myactions.py:
#!/usr/bin/env python
class ActionScripts(ActionScriptsBase):
def action__my_custom_action(self, action_args: list[str] = []) -> None:
"""Action: my-custom-action"""
# Run shell commands
RunCmd.run_cmd(cmd=["echo", "Hello World"])
License
Code
Code in this project is licensed under the MPL, version 2.0.
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
Metadata
Release files for xmach-app 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| xmach_app-1.0.0.tar.gz | 4.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xmach_app-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.6 kB
Release files / xmach_app-1.0.0.tar.gz
| Download URL | xmach_app-1.0.0.tar.gz |
|---|---|
| Size | 4.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b74337944e1492cc65bedc44f3532974ff4f319c9842c685dc6c25e6b03da20d
|
|
BLAKE2b-256 checksum How to use checksums |
070388ae7933758a8ff9af7db5838ed09b327061e5aa22bd7fb32d2baa912f14
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.11
|
Release files / xmach_app-1.0.0-py3-none-any.whl
| Download URL | xmach_app-1.0.0-py3-none-any.whl |
|---|---|
| Size | 5.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
419f9ccd18021e9f193cb2f130f9e0b38a3e5f9e1fd23c72b5e1718ea05a9ea9
|
|
BLAKE2b-256 checksum How to use checksums |
7e91e2d79b467412f798f28479243d282ef44da952bcec7fac5f32147e72eef8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.11
|