Skip to content
This repository has been archived by the owner on Feb 27, 2018. It is now read-only.

Fix shellinit output for cmd.exe/powershell #356

Merged
merged 1 commit into from
Mar 26, 2015
Merged

Fix shellinit output for cmd.exe/powershell #356

merged 1 commit into from
Mar 26, 2015

Conversation

ahmetb
Copy link
Contributor

@ahmetb ahmetb commented Mar 25, 2015

Also fixes the issue with Windows paths with backslashes in the bash
export statements.

When shellinit/up executed on windows, prints instructions on how to set
environment variables correctly for Windows Command Prompt (cmd.exe) and
PowerShell. (only the powershell set path statements are printed to
stdout; the rest goes to stderr).

We couldn't find a way to figure out if we're running on CMD or PowerShell, that's
why printing instructions for both.

Visualized:

Changes in MSYS window (used with "Boot2Docker Start" shortcut link), added single quotes around path.

CMD.exe output for for up (used to print "Docker client does not run on Windows for now"):

Powershell output for up (same as cmd.exe):

Powershell boot2docker shellinit | Invoke-Expression (notice that the PS commands are missing as they were on stdout and got piped to Invoke-Expression):

Signed-off-by: Ahmet Alp Balkan ahmetalpbalkan@gmail.com
cc: @tianon @johngossman

@tianon
Copy link
Contributor

tianon commented Mar 25, 2015

A tiny bit hacky, but not unreasonably so. 👍

LGTM

cc @Moghedrin @gmlewis

fmt.Fprintln(os.Stderr, "")
// Print powershell instructions to stderr
fmt.Fprintln(os.Stderr, "If you are running inside PowerShell, copy or paste the following commands")
fmt.Fprintln(os.Stderr, "to your shell or run \"boot2docker shellinit | Invoke-Expression\" to set the")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Could be:

fmt.Fprintln(os.Stderr, `to your shell or run "boot2docker shellinit | Invoke-Expression" to set the`)

Also fixes the issue with Windows paths with backslashes in the bash
`export` statements.

When shellinit/up executed on windows, prints instructions on how to set
environment variables correctly for Windows Command Prompt (cmd.exe) and
PowerShell. (only the powershell set path statements are printed to
stdout; the rest goes to stderr).

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
@gmlewis
Copy link
Contributor

gmlewis commented Mar 25, 2015

A couple minor nits, otherwise LGTM.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants