automates the fixing of problems reported by yamllint
Project description
yamlfixer
❔ About
yamlfixer automates the fixing of problems reported by yamllint by parsing its output.
📑 Installation
💡 You can try the install process online thanks to the dedicated Katacoda scenario.
The easiest way to install yamlfixer
is from
pypi, as described
below.
🐧Linux install
python3 -m pip install yamlfixer-opt-nc
🪟 Windows install
python -m pip install yamlfixer-opt-nc
🚀 Usage
This software automatically fixes some errors and warnings reported by
yamllint
.
usage: yamlfixer [-h] [-v] [-b] [-d] [-j | -p | -s] [file [file ...]]
Fix formatting problems in YAML documents. If no file is specified,
then reads input from `stdin`.
positional arguments:
file the YAML files to fix. Use `-` to read from `stdin`.
optional arguments:
-h, --help show this help message and exit
-v, --version display this program's version number and exit.
-b, --backup make a backup copy of original files as `.orig`
-d, --debug output debug information to stderr.
-l, --listfixes output the list of available fixes.
-j, --jsonsummary output JSON summary to stderr.
-p, --plainsummary output plain text summary to stderr.
-s, --summary output colored plain text summary to stderr.
If stderr is not a TTY output is identical to
--plainsummary.
yamlfixer launches yamllint
on each specified filename, then parses
its output and try to fix the reported problems. The special filename
-
means stdin
, and is assumed if there's no other filename
argument.
If input is read from stdin
, the corrected output will be sent to
stdout
.
Other files will be overwritten if needed. Original files,
stdin
excepted, can be preserved as .orig
if the --backup
command line option is used.
Both summaries and diagnostic information are sent to stderr.
This command exits with -2
if yamllint is not available on your
system. Otherwise it exits with 0
if all input files either are
skipped or successfully pass yamllint
strict mode, else -1
.
IMPORTANT: Not all problems are fixable by yamlfixer
. Due to the
fact that yamllint
doesn't currently report all faulty lines,
yamlfixer
might even introduce indentation problems under some
circumstances.
⚠️Use at your own risk, you have been warned... ⚠️
💪 Tips and tricks
Find here a set of tips & tricks about how to achieve great things.
Don't find the usecase you're looking for ➡️ 🎫 Fill a dedicated issue so we could share your idea with the comunity
⏩ One liners
Most of use love short and efficient command lines. Here are some ready to use ones :
Piping json
summary through jq
yamlfixer --jsonsummary bad.yml 2>&1 | jq
So you can get a nicely colored (and validated json
output) :
"filestofix": 1,
"passedstrictmode": 1,
"modified": 0,
"skipped": 0,
"notwriteable": 0,
"unknown": 0,
"details": {
"/home/jerome/yamlfixer/bad.yml": {
"status": "PASSED",
"issues": 0,
"handled": 0
}
}
}
Check if yamlfixer
could fix a yaml
and get the exit code
See how piping fixing and linting can be interesting... and get exit code so you can go further in automation :
yamlfixer <bad.yml | yamllint --format parsable --strict -
echo $?
🔖 Related contents
- Dedicated Post explaining how we are using this project to automate
yaml
linting and fixing - GH Action relying on this project
- Dedicated Katacoda scenario so you can see it live
📖 Licensing information
Copyright (C) 2021-2022 OPT-NC
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
🧑🤝🧑 Contact
To contact the authors of this software, simply fill an issue on this project.
OPT-NC, aka Office des Postes et Télécommunications de Nouvelle-Calédonie, check
OPT-NC
Github Organization page for more.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for yamlfixer_opt_nc-0.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe696514aba8f456971c929d5f3dd212583ff26b8c6c610d4640018052d41036 |
|
MD5 | 3380a18c89382c01716a854f65a76ce3 |
|
BLAKE2b-256 | 2b5c70778dd09cdedac398072fffd48b699492c1a1d6ecbd2f8322e2aa9fb135 |