0.0.3 • Published 6 years ago

helen_gendiff v0.0.3

Weekly downloads
1
License
ISC
Repository
github
Last release
6 years ago

Build Status Maintainability

Generator of differences

:white_check_mark: General info

install

npm i helen_gendiff

A command line interface utility for finding differences in configuration files.

gendiff -h

  Usage: gendiff [options] <firstConfig> <secondConfig>

  Compares two configuration files and shows a difference.

  Options:

    -h, --help           output usage information
    -V, --version        output the version number
    -f, --format [type]  Output format

Features of the utility:

Json, yaml and ini formats are supported
Report generation as plain text, tree and json (default report is tree)

The usual sequence of events for creating a diff is to create two identical directories, make changes in one directory, and then use the diff utility to create a list of differences between the two. Using gendiff eliminates the need for the extra, original and unmodified directory copy. Instead, only the individual files that are modified need to be saved.

:file_folder: Examples

$ gendiff --format plain first-config.ini second-config.ini

Property 'common.setting1' remained unchanged
Property 'common.setting2' was removed
Property 'common.setting3' was updated. From value: 'true' to complex value
Property 'common.setting6.key' remained unchanged
Property 'common.setting6.ops' was added with value: 'vops'
Property 'common.setting4' was added with value: 'blah blah'
Property 'common.setting5' was added with complex value
Property 'group1.baz' was updated. From value: 'bas' to value: 'bars'
Property 'group1.foo' remained unchanged
Property 'group1.nest' was updated. From complex value to value: 'str'
Property 'group2' was removed
Property 'group3' was added with complex value

$ gendiff first-config.json second-config.json

    common: {
        setting1: Value 1
      - setting2: 200
      - setting3: true
      + setting3: {
            key: value
        }
        setting6: {
            key: value
          + ops: vops
        }
      + setting4: blah blah
      + setting5: {
            key5: value5
        }
    }
    group1: {
      + baz: bars
      - baz: bas
        foo: bar
      - nest: {
            key: value
        }
      + nest: str
    }
  - group2: {
        abc: 12345
    }
  + group3: {
        fee: 100500
    }

:hammer: Technologies

Project is created with:

  • ES6
  • Node.js