timja / jenkins-gh-issues-poc-06-18

0 stars 0 forks source link

[JENKINS-43513] Windows CLI client running groovysh command produces odd formatting #9073

Open timja opened 7 years ago

timja commented 7 years ago

Summary:
When run from a Windows client, using either PowerShell or the traditional cmd.exe command prompt, use of the groovysh CLI command produces unexpected characters and formatting in the output. This can be seen when connecting to both Windows and Linux Jenkins servers.

Steps to recreate:

  1. Install and launch the latest weekly of Jenkins on either a Linux or a Windows server.
  2. Download the most up to date version of jenkins-cli.war from this same Jenkins.
  3. Run java -jar jenkins-cli.jar -s http://1.2.3.4:8080/ -ssh -user admin groovysh from a Windows system.
  4. Although the command seems to work, its output is badly formatted. Screen shots immediately below.

PowerShell:

cmd.exe:

Everything is formatted correctly when run from a Linux box. This is the same command, pointed at the same Jenkins:


Originally reported by kshultz, imported from: Windows CLI client running groovysh command produces odd formatting
  • status: Open
  • priority: Minor
  • resolution: Unresolved
  • imported: 2022/01/10
timja commented 7 years ago

kshultz:

FTR, this is reproducible with older versions of the CLI client too. In other words, not isolated to Jenkins >= 2.54.

timja commented 7 years ago

oleg_nenashev:

Which CLI mode do you use? The default HTTP one? What does happen in SSH mode? Anyway, I would assume this is just another encoding problem when master and client have different encodings

timja commented 7 years ago

kshultz:

It's the same behavior with all three modes (-ssh, -remoting, and default HTTP).

timja commented 7 years ago

danielbeck:

These are ANSI escape sequences that tell Unix shells how to format things (bold, colored, etc.).

https://en.wikipedia.org/wiki/ANSI_escape_sequences

The rectangle is an ASCII ESC char, followed by the rest of the sequence. It's just that on Windows, the shell doesn't interpret these sequences.

Should probably add a "--plain" option to the groovysh command to accomodate lesser operating systems.