ExecuteSoft CLI
exe is the Rust command-line tool for ExecuteSoft repository automation. Keep
workflow logic here instead of adding new Bash or Makefile implementations.
Local Use
From the repository root, build the local binary:
Run it from bin/exe:
Run without building bin/exe:
Install for the current user:
If exe is not found after installation, add Cargo binaries to the shell path:
Use Cases
Check Service Compliance
Use this before committing service or template changes:
check-all validates service roots under services/ and certified template
skeletons under tools/templates/.
Create A Service
Use the generator instead of copying service folders manually:
The generator copies the selected certified template, replaces template tokens, creates the service folder, and creates the shared protobuf contract when the local service contract exists.
Run Service Make Targets
Use service names for common operations:
When a service name is ambiguous, pass the service path.
Manage Gateway Routes
Generated gateway artifacts must come from route source files and protobufs:
Do not manually edit generated route artifacts.
Run Local Development Helpers
Use dev watch for simple polling reloads in services that need it.
Release And Deployment
release and deployment commands keep repository sync first-class:
deploy kubernetes runs sync before delegating to the deployment Make target.
crates.io Publishing
The crate is publish-enabled in tools/exe/Cargo.toml:
= true
To publish, first update tools/exe/Cargo.toml with public package metadata:
[]
= "executesoft"
= "0.1.0"
= "2024"
= "1.95"
= "ExecuteSoft repository automation CLI"
= "MIT"
= "https://github.com/execute-soft/executsoft"
= "README.md"
= true
The package name is global on crates.io. If executesoft is unavailable,
choose another package name. The installed binary can still be named exe
because the binary target controls the command name:
[[]]
= "exe"
= "src/main.rs"
Authenticate and verify:
Publish:
After publishing, install from crates.io:
For private company tooling, prefer local or private-registry installation until the command surface and package metadata are stable.