Better behaviour of FBCMD in Powershell

I'm using FinalBuilder and FBCMD.exe, which are great.  FBCMD looks wonderful in the Command Prompt.

It looks like crap in PowerShell, though, and not only ignores the PowerShell colour settings, it actively overwrites them and doesn't set them back when it is finished.

Further investigation implies that FBCMD is not changing PowerShells colour settings (which could be changed back) but actually changing what the PowerShell colour slots mean, so re-setting the background to black is futile - black is now white (for example).

I understand that FB6 will support the use of PowerShell within FinalBuilder.  Is it reasonable to hope that it will also update FBCMD to play nicely inside PowerShell?

Thanks,

Scott.

Hi Scott,

Thanks for pointing this out, I’ll see what we can do about re-setting the console colours.

Regards,

Angus

Here's a link to a test build of FB 5 which will reset the console colours after running, so they are the same as before running:

https://www.finalbuilder.com/downloads/finalbuilder/550/FB550_684.exe

The background still defaults to black, so it still looks pretty wrong when running under PowerShell.

For FB 6, the next beta will be even more respectful of colours, so it should look quite good under PowerShell. The console output code actually changed a lot between the two versions, so that change probably won't make it into FB 5.

Regards,

Angus

FYI, if you want to disable all the colours and just see flat text output in PowerShell, you can call

FBCMD.exe [ Arguments] | Tee -variable False

... and you'll get clean output.

(I don't know a PowerShell command which just does simple echoing, there probably is one.)

We could probably add a command line option to disable colour highlighting altogether, if you think that would be useful.

Hi Angus,

Thanks for the Tee tip, which works nicely if I type the command in myself, but (you won't believe this) I'm actually using rake to launch the process. Saves on typing. :)
Anyway, the tip doesn't work when there is an intermediary process, so a command line to disable colours would be great.
BTW, the link to the special build, above, seems to be broken, so I couldn't test it.

Thanks,

Scott.

Hi Scott,

Sorry, link’s been fixed.

You’re using rake inside PowerShell to launch FinalBuilder? I’m impressed… Care you describe your build process?

The Tee trick is really just redirecting the output to a pipe. You can do this any way you want, from any tool (ie redirect to a file, then log the contents of the file), the point is that you need to change FBCMD so it isn’t writing to a console handle when it outputs data.

I’ll see what we can do about the no-color option. It probably won’t make it into FB 5, but it may be an option for FB 6.

Regards,

Angus

Thanks Angus, I’m downloading now. I’ll tell you how it goes tomorrow.

As for our build process:

We use Finalbuilder here triggered by CruiseControl for continuous integration, but I’ve modified the FinalBuilder script to have several modes - nightly, continuous and local. The local mode runs on a dev machine that already has all the libraries installed and doesn’t need VCS synchronisation.

There are several ways to launch the local build, but I use rake as a sort of central location for miscellaneous jobs. It’s fine when I’m in cmd.exe, but I’m generally trying to shift to Powershell, thus the colour concern.

So the Powershell -> Rake -> FinalBuilder linkage is unique to me. Normally it is a CruiseControl -> cmd.exe -> FinalBuilder (on the integration server), or Delphi -> cmd.exe -> FinalBuilder (using a configured custom tool in the menu).

Hi Angus,

I tested that custom build - it still looks a bit yuck when it is running, but it resets the colours to what they were when it’s finished, so that’s fine. I can always change my colour scheme to match up a bit better.

Thanks!

Scott.