GithubHelp home page GithubHelp logo

oxmento / config-file-validator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from boeing/config-file-validator

0.0 0.0 0.0 17.13 MB

Cross Platform tool to validate configuration files

Home Page: https://boeing.github.io/config-file-validator/

License: Apache License 2.0

Shell 0.93% Go 98.55% Dockerfile 0.52%

config-file-validator's Introduction

Config File Validator

Single cross-platform CLI tool to validate different configuration file types

Code Coverage Apache 2 License Awesome Go Go Reference Go Report Card Pipeline Status

Supported config files formats:

  • Apple PList XML
  • CSV
  • ENV
  • HCL
  • HOCON
  • INI
  • JSON
  • Properties
  • TOML
  • XML
  • YAML

Demo

demo

Installation

There are several ways to install the config file validator tool

Docker

We offer Alpine, Ubuntu, and Scratch containers

Alpine

docker pull ghcr.io/boeing/config-file-validator:v1.6.0

Ubuntu

docker pull ghcr.io/boeing/config-file-validator-ubuntu:v1.6.0

Scratch

docker pull ghcr.io/boeing/config-file-validator-scratch:v1.6.0

Binary Releases

Download and unpack from https://github.com/Boeing/config-file-validator/releases

Aqua

You can install the validator using aqua.

aqua g -i Boeing/config-file-validator

Arch Linux

We release a PKGBUILD file for Arch Linux

cd config-file-validator
makepkg -si

go install

If you have a go environment on your desktop you can use go install to install the validator executable. The validator executable will be installed to the directory named by the GOBIN environment variable, which defaults to $GOPATH/bin or $HOME/go/bin if the GOPATH environment variable is not set.

go install github.com/Boeing/config-file-validator/cmd/[email protected]

Usage

Usage: validator [OPTIONS] [<search_path>...]

positional arguments:
    search_path: The search path on the filesystem for configuration files. Defaults to the current working directory if no search_path provided

optional flags:
  -depth int
    	Depth of recursion for the provided search paths. Set depth to 0 to disable recursive path traversal
  -exclude-dirs string
    	Subdirectories to exclude when searching for configuration files
  -exclude-file-types string
    	A comma separated list of file types to ignore
  -groupby string
    	Group output by filetype, directory, pass-fail. Supported for Standard and JSON reports
  -output string
    	Destination to a file to output results
  -quiet
    	If quiet flag is set. It doesn't print any output to stdout.
  -reporter string
    	Format of the printed report. Options are standard and json (default "standard")
  -version
    	Version prints the release version of validator

Examples

Standard Run

If the search path is omitted it will search the current directory

validator /path/to/search

Standard Run

Multiple search paths

Multiple search paths are supported, and the results will be merged into a single report

validator /path/to/search /another/path/to/search

Multiple Search Paths Run

Exclude directories

Exclude subdirectories in the search path

validator --exclude-dirs=/path/to/search/tests /path/to/search

Exclude Dirs Run

Exclude file types

Exclude file types in the search path. Available file types are csv, env, hcl, hocon, ini, json, plist, properties, toml, xml, yaml, and yml

validator --exclude-file-types=json /path/to/search

Exclude File Types Run

Customize recursion depth

By default there is no recursion limit. If desired, the recursion depth can be set to an integer value. If depth is set to 0 recursion will be disabled and only the files in the search path will be validated.

validator --depth=0 /path/to/search

Custom Recursion Run

Customize report output

Customize the report output. Available options are standard, junit, and json

validator --reporter=json /path/to/search

Exclude File Types Run

Group report output

Group the report output by file type, directory, or pass-fail. Supports one or more groupings.

validator -groupby filetype

Groupby File Type

Multiple groups

validator -groupby directory,pass-fail

Groupby File Type and Pass/Fail

Output results to a file

Output report results to a file (default name is result.{extension}). Must provide reporter flag with a supported extension format. Available options are junit and json. If an existing directory is provided, create a file named default name in the given directory. If a file name is provided, create a file named the given name at the current working directory.

validator --reporter=json --output=/path/to/dir

Suppress output

Passing the --quiet flag suppresses all output to stdout. If there are invalid config files the validator tool will exit with 1. Any errors in execution such as an invalid path will still be displayed.

validator --quiet /path/to/search

Container Run

docker run -it --rm -v /path/to/config/files:/test config-file-validator:1.6.0 /test

Docker Standard Run

Build

The project can be downloaded and built from source using an environment with Go 1.21+ installed. After a successful build, the binary can be moved to a location on your operating system PATH.

macOS

Build

CGO_ENABLED=0 \
GOOS=darwin \
GOARCH=amd64 \ # for Apple Silicon use arm64
go build \
-ldflags='-w -s -extldflags "-static"' \
-tags netgo \
-o validator \
cmd/validator/validator.go

Install

cp ./validator /usr/local/bin/
chmod +x /usr/local/bin/validator

Linux

Build

CGO_ENABLED=0 \
GOOS=linux \
GOARCH=amd64 \
go build \
-ldflags='-w -s -extldflags "-static"' \
-tags netgo \
-o validator \
cmd/validator/validator.go

Install

cp ./validator /usr/local/bin/
chmod +x /usr/local/bin/validator

Windows

Build

CGO_ENABLED=0 \
GOOS=windows \
GOARCH=amd64 \
go build \
-ldflags='-w -s -extldflags "-static"' \
-tags netgo \
-o validator.exe \
cmd/validator/validator.go

Install

mkdir -p 'C:\Program Files\validator'
cp .\validator.exe 'C:\Program Files\validator'
[Environment]::SetEnvironmentVariable("C:\Program Files\validator", $env:Path, [System.EnvironmentVariableTarget]::Machine)

Docker

You can also use the provided Dockerfile to build the config file validator tool as a container

docker build . -t config-file-validator:v1.6.0

Contributors

Contributing

We welcome contributions! Please refer to our contributing guide

License

The Config File Validator is released under the Apache 2.0 License

config-file-validator's People

Contributors

kehoecj avatar actions-user avatar gokulav137 avatar hakanvardarr avatar sandyydk avatar ccoveille avatar skobelkinyaroslav avatar szepeviktor avatar iyoshiha avatar ravsii avatar godlixe avatar hyperupcall avatar gijsdb avatar jcsmurph avatar jenskeivik avatar leslieleung avatar luancgs avatar prestonvasquez avatar suzuki-shunsuke avatar vicheanath avatar onlineque avatar u5surf avatar g41797 avatar jackswiney avatar levkush avatar nickajacks1 avatar parkerstafford avatar wiz64 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.