Giter VIP home page Giter VIP logo

Comments (2)

mikefarah avatar mikefarah commented on May 23, 2024 1

In 4.41.1 you can now do:

yq '
{"software": { "config":  (
    # merge top level object values into a new map
    .[] as $entry ireduce   ({}; 
        . * $entry
    )
    # process comments, set value to default
    | with_entries(
        .key headComment = "-- " + .value.description
        | .value = .value.default // ""
    )
) }}'

from yq.

mikefarah avatar mikefarah commented on May 23, 2024

The reason the head_comment is removed is because yq has some workarounds on pre-processing headers, you can turn this off by using the "--header-preprocess". Alternatively, you can do this in a single expression like so:

yq '
{"software": { "config":  (
.[] as $entry ireduce   ({}; 
    . * $entry
)
| to_entries 
| with(.[]; 
    .key headComment = "-- " + .value.description
    | .value = .value.default // ""
)
| from_entries 
) }}'

Explanation:

  • Use reduce to create a new map, based on the children of top level LOG_LEVEL/FEATURE_FLAG map
  • Go through each of the entries, add the headComment to the key and set the value to be the default

This has actually revealed a bug in the with_entries operator, so I've manually done to_entries / with / from_entries to work around it. I'll fix the with_entries bug for the next release.

from yq.

Related Issues (20)

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.