devspace icon indicating copy to clipboard operation
devspace copied to clipboard

Pipeline output is not displayed until a newline is reached

Open jackwilsdon opened this issue 2 years ago • 3 comments

What happened? Text printed from a pipeline is not output to the terminal until a newline is reached.

What did you expect to happen instead?
Text should be printed without needing a newline.

How can we reproduce the bug? (as minimally and precisely as possible)

  1. Create this devspace.yaml:
    version: v2beta1
    pipelines:
      test: |
        echo -n "Text without a newline"
        sleep 1
        echo "... finished!"
    
  2. Run devspace run-pipeline test
  3. Note that "Text without a newline" doesn't appear until "... finished!" is printed

Local Environment:

  • DevSpace Version: 6.3.3
  • Operating System: macOS Sonoma 14.0
  • ARCH of the OS: arm64

Anything else we need to know?
This is a bigger issue when using read -p "Some prompt here: ", as the prompt doesn't appear until the user has hit enter (completing the read).

jackwilsdon avatar Oct 20 '23 14:10 jackwilsdon

From what I can tell, this is caused by this code (Scan only returns when it finds a newline):

https://github.com/devspace-sh/devspace/blob/69e7df31933df3f5590195b7fba8cb2da684d96d/pkg/devspace/pipeline/job.go#L101-L107

Not sure what the right fix is, as it seems like pkg/util/log doesn't have any support for logging without a newline.

jackwilsdon avatar Oct 20 '23 15:10 jackwilsdon

@jackwilsdon Thanks for the analysis! We will take a look at a fix. I had previously assumed that this was an issue with the library we were using for the shell emulation, but you're probably right in that it's the scanner using the ScanLines function to tokenize the reader output.

lizardruss avatar Oct 23 '23 15:10 lizardruss

@jackwilsdon While not a solution for this particular problem, I've found that read -p "Some prompt here: " works as expected in commands. The read values can then be passed into DevSpace using the --var flag. Hope that's helpful.

lizardruss avatar Jan 08 '24 19:01 lizardruss