Comments (3)
I'll add a concrete example and details when I get a chance
from yq.
Here's an example. I've removed the majority of the yaml from the files so it's easy to reproduce.
Given the following yaml files:
# one.yaml
spec:
jobTemplate:
spec:
# two.yaml
spec:
template:
spec:
containers:
- name: task-runner
args:
- cp -v -r -L /etc/gitlab/.s3cfg $HOME/.s3cfg && while sleep 3600; do :; done # alpine sleep has no infinity
I want to set spec.jobTemplate.spec
in one.yaml equal to spec.template
from two.yaml.
Using the following command should achieve that:
yq -y ".spec.jobTemplate.spec = $(yq '.spec.template' two.yaml)" one.yaml
But it causes the line to get broken. If you drop the -y
flag and inspect the JSON it's fine and valid.
Interestingly, if you set the value one level shallower i.e.:
yq -y ".spec.jobTemplate = $(yq '.spec.template' two.yaml)" one.yaml
instead of
yq -y ".spec.jobTemplate.spec = $(yq '.spec.template' two.yaml)" one.yaml
it works without breaking the line.
from yq.
There is nothing "broken" about the YAML emitted in your test case. As described in the spec, YAML folds whitespace in strings; in other words, unless you escape your whitespace with \
, it will be compressed into a single space, and lines will be wrapped.
As described in the yq help, you can get the behavior that you want by setting the -w/--width
option to a large value, for example:
yq -w 99 -y ".spec.jobTemplate.spec = $(yq '.spec.template' two.yaml)" one.yaml
from yq.
Related Issues (20)
- XML streaming mode HOT 2
- ConstructorError: found unconstructable recursive node HOT 2
- Tests fail with a variety of errors: argparse.ArgumentError: argument files: can't open '/dev/fd/3': [Errno 2] No such file or directory: '/dev/fd/3', etc HOT 1
- xml: is keeping the namespace possible? HOT 1
- Test fails with jq-1.7 HOT 1
- Ubuntu 23.04 disallows `pip install yq` by default HOT 2
- output string '08' and '09' without quote using yaml output format HOT 1
- xq no longer outputting JSON HOT 1
- Toml error HOT 3
- Preserve order of hetergenous elements in output HOT 3
- Read YAML and output TOML HOT 6
- Header %YAML 1.1 and '---' not preserved HOT 1
- Strings that look like invalid octal numbers are stripped of quotes. HOT 1
- Raise legible error when trying to emit TOML with null values
- TOML support (tomlkit) is very slow HOT 3
- Argument values starting with dash '-' throw "argument --arg: expected 2 arguments" HOT 1
- [bug] Version 3.3.0 breaks float parsing HOT 2
- '--version' Gives 'yq 0.0.0' From yq Version ≥ 3.3.0 HOT 1
- Why block current versions of Python build tooling? HOT 4
- Missing --null-input passthrough
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yq.