doc: RFC: husht command line and top-level behavior #1
35
README.md
35
README.md
@ -23,3 +23,38 @@ into the Rust code.
|
|||||||
|
|
||||||
Documentation of specific syntax features of husht will be added as they are
|
Documentation of specific syntax features of husht will be added as they are
|
||||||
implemented.
|
implemented.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
`husht [options] [sources]`
|
||||||
|
|
||||||
|
Transforms some files from husht to Rust. The source specification `sources`
|
||||||
|
is a list of files, directories or glob patterns, defaulting to `.`. A
|
||||||
|
directory `dir` is interpreted the same way as the glob pattern `dir/**` --
|
||||||
|
in other words, all files recursively within that directory. Glob patterns
|
||||||
|
are matched and all matching files are added to the list of files to process.
|
||||||
|
If there is a destination directory (see below), all files in the destination
|
||||||
|
directory are ignored. Files that do not have extension `.toml` or `.hsh` are
|
||||||
|
ignored. The former are copied unchanged; the latter are transformed per the
|
||||||
|
husht language specification into Rust `.rs` files.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
- -h, --help -- Print a usage summary and exit
|
||||||
|
- -o, --destination [dir/file] -- Specifies the destination of the
|
||||||
|
transformed file(s). If the destination is a single file, the sources must
|
||||||
|
be as well, and the one file is transformed into the other. A destination
|
||||||
|
specification without an extension is assumed to be a directory. The
|
||||||
|
default destination is `rust`.
|
||||||
|
|
||||||
|
If the destination is a directory, then the transform of each source file
|
||||||
|
is written into that directory, preserving its relative path to its "root".
|
||||||
|
The root of a file added by virtue of a glob is the top level directory
|
||||||
|
of that glob pattern. The root of a file specified explicitly is the
|
||||||
|
current directory.
|
||||||
|
|
||||||
|
For example, if the `src` directory contains `main.hsh`, `sub/crate.hsh`, and
|
||||||
|
`Cargo.toml` (and there are no other .hsh or .toml files in the directory
|
||||||
|
tree), then `husht src` would write `rust/main.rs`, `rust/sub/crate.rs`, and
|
||||||
|
`rust/Cargo.toml`. On the other hand just `husht`, defaulting to `husht .`,
|
||||||
|
would write `rust/src/main.rs`, `rust/src/sub/crate.rs`, and
|
||||||
|
`rust/src/Cargo.toml`.
|
||||||
|
Loading…
Reference in New Issue
Block a user