This shows a refined YAML format for CLI specifications with improvements:
- Args use plain names without angle brackets
- Completions use YAML's multiline string syntax with
|
| // formatters can be used in any hook | |
| formatters { | |
| ["cargo"] {} // defaults to "*.rs" | |
| ["go"] {} // defaults to "*.go" | |
| ["prettier"] { | |
| glob = new { "*.ts" } | |
| } | |
| } | |
| // linters can be used in any hook |
| # this is an example "usage" definition | |
| # it defines a subset of the tool "rtx". What syntax it uses for CLI arguments | |
| # as well as how it interacts with env vars and config files | |
| # usage can be thought of as "swagger for CLIs" | |
| # The purpose is that having a language-agnostic definition for CLIs we can | |
| # build tools like generic autocompletion (so you don't need to learn how to write complex bash/zsh completions) | |
| # It would also allow us to build documentation tools (browser or CLI), scaffold out CLIs, and build | |
| # parsing/validation libraries to make CLI development faster. | |
| # CLI parsing starts here. This is close, but probably not identical to docopt. |
| # Generated by rust2rpm 24 | |
| %bcond_without check | |
| %global debug_package %{nil} | |
| %global crate gumdrop_derive | |
| Name: rust-gumdrop_derive | |
| Version: 0.8.1 | |
| Release: %autorelease | |
| Summary: Custom derive support for gumdrop |
| <!--{ | |
| "Title": "Go 1.15 Release Notes", | |
| "Path": "/doc/go1.15" | |
| }--> | |
| <!-- | |
| NOTE: In this document and others in this directory, the convention is to | |
| set fixed-width phrases with non-fixed-width spaces, as in | |
| <code>hello</code> <code>world</code>. | |
| Do not send CLs removing the interior tags from such phrases. | |
| --> |
| #!/bin/bash | |
| set -euo pipefail | |
| # Downloads a node tarball from https://nodejs.org/dist/ and extracts just | |
| # the binary into the current directory. Chiefly we use this to get a node | |
| # binary for uploading to manifold. | |
| if [[ $# -ne 4 ]]; then | |
| echo "USAGE: $0 <node_version> <os> <arch> <filename>" | |
| exit 1 |
| #!/bin/bash | |
| set -euxo pipefail | |
| # Downloads a node tarball from https://nodejs.org/dist/ and extracts just | |
| # the binary into the current directory. Chiefly we use this to get a node | |
| # binary for uploading to manifold. | |
| if [[ $# -ne 4 ]]; then | |
| echo "USAGE: $0 <node_version> <os> <arch> <filename>" | |
| exit 1 |
| bool pid_id_active(pid_t pid) { | |
| return kill(pid, 0) == 0; | |
| } |
| #include <fstream> | |
| int main() { | |
| std::ofstream f{"myfile.txt"}; | |
| f << "sometext" << std::endl; | |
| if (!f) | |
| throw std::system_error(errno, std::system_category(), "failed to open file"); | |
| return 0; | |
| } |