diffyaml

module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 24, 2020 License: Apache-2.0

README

diffyaml

Go

Semantic difference for yaml files

diffyaml compares two yaml files and produces a list of changes which reflect a knowledge of the structure of yaml files. Yaml has three main types of nodes:

  • Scalar values (strings, numbers)
  • Mapped values (name=john, age=25)
  • Sequence values - an ordered list of items

Of course all of these can be mixed and matched in any combo.

yaml diff makes assumptions when comparing each node in the tree based on its type.

Output

The report produced by diffyam is itself a yaml sequence of ChangeLog entries which can have

  • Path - A path to the affected node. Adds refer to the item in the new yaml file. Deletions refer to the old yaml file.
  • To, ToIndex - The yaml.Node in the new document for Adds,Moves
  • From, FromIndex - The yaml.Node in the original document for Deletes, Moves

Usage Syntax - command line

diffyaml filePath1 filePath2

Will produce the change log to stdout. All node paths are prefixed with 'doc.'

example

Running:

diffyaml ./fixtures/simple/map-key-added.from.yaml ./fixtures/ simple/map-key-added.to.yaml

produces:

- path: doc.fourth-key
  type: added
  to: item4

Usage - golang library

You can use the Changelog items produced by diffyam to do more specific analysis relevent to a given domain, eg a kubernetes resource defintion or openapi spec.

golang exmaple

coming soon

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL