#command-line-tool #text-file #contents #file-format #enforcing #url #yaml-json-toml-text

bin+lib you-must-conform

A command-line tool for enforcing YAML|JSON|TOML|text file contents

4 releases (stable)

1.1.1 Apr 6, 2022
1.0.0 Apr 6, 2022
0.1.0 Apr 4, 2022

#49 in #text-file

MIT license

22KB
433 lines

you-must-conform

crates-io docs-rs github

A command-line tool for enforcing YAML|JSON|TOML|text file contents.

Usage

# conform.yaml
config:
- file: Cargo.toml
  format: toml
  schema:                   # Ensure these nested keys are set
    package:
      edition: "2021"
- file: Cargo.lock
  exists: true              # Ensure this file exists
- file: src/lib.rs
  matches-regex: '(?m)^use' # Ensure this regex is matched in the file

include:                    # (Recursively) merge config from these urls
- https://example.com/another-conform.yaml

$ you-must-conform --help
you-must-conform 1.1.0
A command-line tool for enforcing YAML|JSON|TOML|text file contents.

USAGE:
    you-must-conform [OPTIONS] <--file <FILE>|--url <URL>>

OPTIONS:
    -c, --context <CONTEXT>    The folder to check against the config file [default: .]
    -f, --file <FILE>          The config file to check [default: conform.yaml]
    -h, --help                 Print help information
    -u, --url <URL>            A url to fetch the config file from instead
    -V, --version              Print version information

$ you-must-conform
Schema not matched in ./Cargo.toml:
    "package" is a required property
File ./Cargo.lock does not exist
File ./src/lib.rs does not match regex (?m)^use
Error: Found 3 problems

License: MIT

Dependencies

~17–33MB
~526K SLoC