Giter Site home page Giter Site logo

techi602 / yaml-standards Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sspooky13/yaml-standards

0.0 0.0 0.0 395 KB

Standards for yaml files - adhere your yaml clean and nice

License: MIT License

Shell 0.68% JavaScript 0.12% PHP 97.76% Batchfile 0.03% Dockerfile 1.32% Less 0.09%

yaml-standards's Introduction

YAML standards

Total Downloads Build Status Scrutinizer Code Quality Code Coverage Quality Gate Status PHPStan level

This library is primarily intended to help you to keep observe standards for YAML files, but some standards can be used for other files, e.g. YamlEmptyLineAtEnd standard

Installation

Install the latest version with Composer command:

composer require --dev sspooky13/yaml-standards

Usage

  1. Create config file in project root directory with allowed standards and files/directories to check. You can copy config file ./example/yaml-standards.yaml and edit it according to your needs.
  2. Run vendor/bin/yaml-standards

Tips:

  • If your config file has different name or it's located in different directory as root you can run command with argument where is wried path to config file with name, e.g. vendor/bin/yaml-standards ./path/to/your/configFile.yaml
  • You can create target for Phing build tool, e.g.
<property name="path.yaml-standards" value="./vendor/bin/yaml-standards"/>

<target name="check-yaml-standards" description="Run yaml standards checks">
    <exec
        executable="${path.yaml-standards}"
        logoutput="true"
        passthru="true"
        checkreturn="true"
    >
        <arg value="./path/to/your/configFile.yaml" />
    </exec>
</target>

Options for run

  • ./path/to/your/configFile.yaml Path to your config file. Default is ./yaml-standards.yaml.
  • --fix Automatically fix allowed standards problems.
  • --path-to-cache-dir=./path/to/cache/dir/ Custom path where should be cache file stored. Default is root directory.
  • --no-cache Turn off cache functionality.

Implemented checkers

  • YamlAlphabeticalChecker - Check yaml file is alphabetically sorted to selected level. This checker has fixer.
  • YamlIndentChecker - Check yaml has right count of indents. This checker has fixer.
  • YamlSpacesBetweenGroupsChecker - Check yaml file has empty line between every group to selected level. This checker has fixer.
  • YamlInlineChecker - Check yaml file observe standards by symfony yaml parser.
  • YamlEmptyLineAtEnd - Check yaml file has empty line at end of file. This checker has fixer. Note: This standard can be used on every file, not only yaml files.
  • YamlServiceAliasing - Check yaml service file observe short or long code style aliasing. This checker has fixer.

PHPStorm Integration

You can integrate YAML standards into PHPStorm by using File Watcher.

  1. Open Settings -> Tools -> File Watchers
  2. Add new -> custom
  3. Give it a name
  4. Select file type: YAML
  5. Program: \vendor\bin\yaml-standards.bat
  6. Arguments: absolute path to your config file
  7. In config file path to check and excluded paths must have absolute path too

Now, file watcher check your YAML files by config file and notify you if they have errors

How create your own standards

  1. Create class with your own check/fix logic
  2. Checker has to extend class YamlStandards\Model\AbstractChecker.php and class name have to end with Checker word, e.g. YamlLineChecker
  3. Fixer has to be in same directory as checker class, extend class YamlStandards\Model\AbstractFixer.php and name have to be same as checker class except name must end with Fixer word, e.g. YamlLineFixer. Warning! checker class must exist too.
  4. Both classes must return class \YamlStandards\Result\Result
  5. Add your checker class with namespace to your config file to checkers array
  6. done :)

If you think your checker/fixer can be helpful for others, you can create pull request with your code to make it available to everyone :)

Exit codes

Exit code is built using following bit flags:

0 OK.
1 Some file has invalid syntax.
2 General error (file is not readable, error with parse yaml file).

yaml-standards's People

Contributors

boris-brtan avatar cafferata avatar chrisdbrown avatar petrheinz avatar sspooky13 avatar vasilvestre avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.