Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

YAML Stream Output doesn't work with --output-file #60

Closed
FraBle opened this issue Apr 2, 2020 · 1 comment
Closed

YAML Stream Output doesn't work with --output-file #60

FraBle opened this issue Apr 2, 2020 · 1 comment

Comments

@FraBle
Copy link
Contributor

FraBle commented Apr 2, 2020

When specifying -y for the yaml stream output as well as --output-file, sjsonnet writes to stdout instead of the output file.

@lihaoyi-databricks
Copy link
Contributor

Not sure when this was fixed, but it appears to work correctly in master

$ cat ../sjsonnet/sjsonnet/test/resources/db/stream.jsonnet
[
    1,
    2,
    3,
    4,
    5
]

$ bin/sjsonnet --yaml-stream --output-file output.txt ../sjsonnet/sjsonnet/test/resources/db/stream.jsonnet

$ cat output.txt
--- 1
--- 2
--- 3
--- 4
--- 5

lihaoyi-databricks added a commit that referenced this issue Jun 6, 2023
Bug fixes and unit tests to validate behavior of various command line
flags and their combinations: `--exec`, `--yaml-out`, `--yaml-stream`,
`--multi`, `--output-file`. I also propagated the `std: Std` argument
all the way to `sjsonnet.SjsonnetMain.main0`, so it can easily be passed
in by people who use the CLI-arg-based programmatic interface without
having to drop down into `sjsonnet.Interpreter`, e.g. in Databricks'
`JsonnetWorker`

Fixes #112, and fixes
#77, and adds tests for
#60 (which was already
working before, but without test coverage)

The logic inside `SjsonnetMain.scala` is still pretty messy, but at
least it has some rudimentary unit tests now.

Another thing to note is that trailing newline handling isn't great;
depending on what code path you go through, you may get zero, one, or
two trailing newlines. That should be benign, since trailing newlines
are not semantically meaningful in either JSON or YAML, so for now I
just left them in place. At least now we have tests to surface some of
the weirdness

I had to move `MainTests.scala` from `src-jvm-native/` to `src-jvm/`,
due to weird crashes in the Scala Native test-running infrastructure.
Given the experimental nature of Scala-Native, losing a bit of coverage
is probably OK for now, and also it's unlikely that this will cause
anything to break given the same code receives test coverage on the JVM.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants