create-ucode
v0.2.0
Published
An initializer for ucode projects on OpenWrt
Readme
create-ucode
An interactive project initializer for ucode, OpenWrt's modern scripting language.
create-ucode helps you scaffold a production-ready ucode project in seconds, complete with unit testing, Docker-based isolation, OpenWrt package integration, and GitHub Actions CI.
Quick Start
Prerequisites: Docker and Node.js.
npm create ucode@latest my-appFollow the interactive prompts to choose your template and set your maintainer info. Once finished:
cd my-app
make test # Runs the unit tests in a Docker containerFeatures
- Latest OpenWrt Support: Targets OpenWrt 25.12 (using the
apkpackage manager). - Integrated Testing: Out-of-the-box configuration for utest.
- Dockerized Workflow: Test your scripts in a bit-identical OpenWrt environment without needing a router.
- OpenWrt Ready: Generates a standard
Makefilecompatible with the OpenWrt SDK and buildroot. - GitHub Actions CI: Lint, test, and publish
.apkpackages on every push. Releases are triggered by a version tag. - Dual Mode: Use the friendly interactive wizard or script it via CLI flags.
CLI Reference
Usage
npx create-ucode [project-name] [options]
Arguments
| Argument | Description |
| :--- | :--- |
| project-name | (Optional) The directory name and PKG_NAME. Defaults to my-ucode-app. |
Options
| Flag | Description |
| :--- | :--- |
| --template, -t | Specify the template variant (e.g., pure-ucode). |
| --maintainer, -m | Set the maintainer string (e.g., "Name <email>"). |
| --help, -h | Show help information. |
Unattended Mode
To skip all prompts (useful for CI/CD):
npx create-ucode my-app --template pure-ucode --maintainer "Bot <[email protected]>"Development
Local Setup
- Clone the repository.
- Install dependencies:
npm install
Available Scripts
npm start: Run the interactive CLI.npm test: Run a smoke test that scaffolds a project into a temp directory and verifies the output.
Linking for Local Use
To test npm create ucode@latest end-to-end as a user would:
npm linkLicense
MIT — see LICENSE.
