Hello World
The smallest useful Netsuke manifest in this repository. One target transforms `input.txt`, another writes a greeting from a variable, and `defaults` tell the CLI what to build when you just run `netsuke`.
Directory Structure
This example is deliberately small. It keeps the whole language visible at once: top-level `vars`, inline target commands, and two default outputs.
Why it matters
If a new user understands this file, they can read the rest of the examples without guessing what the manifest is doing.
Annotated Manifest
netsuke_version: "1.0.0"
vars:
greeting: "Hello from Netsuke"
targets:
- name: output.txt
command: "cat input.txt | tr 'a-z' 'A-Z' > output.txt"
sources: input.txt
- name: greeting.txt
command: "printf '%s\n' '{{ greeting }}!' > greeting.txt"
defaults:
- output.txt
- greeting.txt
Variables are templated directly
The `greeting` variable is expanded inside the command string with standard Jinja syntax.
Targets can be fully inline
There is no rule block here because the commands are short and specific enough to sit on each target.
Defaults describe the zero-argument build
Running `netsuke` builds both output files without requiring a named target on the command line.
Running the Build
$ netsuke
[1/2] cat input.txt | tr 'a-z' 'A-Z' > output.txt
[2/2] printf '%s\n' 'Hello from Netsuke!' > greeting.txt
$ cat greeting.txt
Hello from Netsuke!
Build Flow
1. Read
Load `input.txt` as a source file and `greeting` as a manifest variable.
2. Build
Run one inline transform and one inline file-write command.
3. Default
Emit both outputs when the CLI is invoked with no explicit target.