Skip to content

VVelox/YAML-yq-Helper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YAML-yq-Helper

Wrapper for yq for various common tasks so YAML files can be manipulated in a manner to preserver comments and version header.

Install

Debian

apt-get install cpanminus
cpanm YAML::yq::Helper

FreeBSD

pkg install p5-App-cpanminus p5-File-Slurp
cpanm YAML::yq::Helper

Source

perl Makefile.PL
make
make test
make install

yqh

SYNOPSIS

yqh -f <yaml> -a clear_array --var <var>
yqh -f <yaml> -a clear_hash<--var <var>
yqh -f <yaml> -a create_array --var <var> [--vals <vals>]
yqh -f <yaml> -a create_hash --var <var>
yqh -f <yaml> -a dedup_array --var <var>
yqh -f <yaml> -a delete B<--var> <var>
yqh -f <yaml> -a delete_array --var <var>
yqh -f <yaml> -a delete_hash --var <var>
yqh -f <yaml> -a ensure
yqh -f <yaml> -a is_array --var <var>
yqh -f <yaml> -a is_hash --var <var>
yqh -f <yaml> -a is_defined --var <var>
yqh -f <yaml> -a merge_yaml --yaml <yaml> [--mode <mode>]
yqh -f <yaml> -a push_array --var <var> --vals <vals>
yqh -f <yaml> -a set_array --var <var> --vals <vals>
yqh -f <yaml> -a set_hash --var <var> --hash <hash>
yqh -f <yaml> -a set_in_array --var <var> --vals <vals> [--dedup <0/1>]
yqh -f <yaml> -a yaml_diff --yaml <yaml_file_2>

FLAGS

-f file

YAML file to operate on.

Default :: undef

-a action

Action to perform.

Default :: undef

--var string

Variable to set.

Default :: undef

--vals string

Comma seperate list of array values.

Default :: undef

--hash

Comma seperate list of hash values. Each value is a sub string with key/value seperate by a /=/.

Default :: undef

--dedup 0/1

If it should dedup the data for the op.

Default :: 1

--yaml file

Another YAML file to use with like the merge_yaml action or the like.

Default :: undef

--mode mode

Merge mode to use.

Default :: deeply

ACTIONS

clear_array

Clears the specified array.

Requires :: --var

clear_hash

Clears the specified hash.

Requires :: --var

create_array

Creates the specified array if it does not exist.

Requires :: --var

Optional :: --vals

create_hash

Creates the specified hash if it does not exist.

Requires :: --var

dedup_array

Deduplicates an array.

Requires :: --var

delete

Deletes the var without checking the type.

Requires :: --var

delete_array

Deletes the specified array.

Requires :: --var

delete_hash

Deletes the specified hash.

Requires :: --var

ensure

Ensures that the YAML starts with

%YAML $version
---

This is largely for use with stuff used by LibYAML as that sometimes does not play nice when that is missing.

Version 1.1 is used if it is not set.

is_array

Returns 0 or 1 based on if it is a array.

Requires :: --var

is_hash

Returns 0 or 1 based on if it is a hash.

Requires :: --var

is_defined

Returns 0 or 1 based on if it is defined.

Requires :: --var

merge_yaml

Merges the specified YAML into the YAML.

Requires :: --yaml

Optional :: --mode

push_array

Pushes a set of items onto an array.

Requires :: --var, --vals

set_array

Clears the array and sets it to specified values.

Requires :: --var, --vals

set_hash

Clears the hash and sets it to specified values.

Requires :: --var, --hash

set_in_array

Make sure a set of values exist in a array and if not add them.

Requires :: --var, --vals

Optional :: --dedup

yaml_diff

Diffs the two YAMLs.

Requires :: --yaml

About

Perl helper for some yaml tasks via yq so comments are preserved.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages