-
Notifications
You must be signed in to change notification settings - Fork 90
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
Dont use curl by default on Windows bootstrap scripts #1076
Conversation
# Whether to disable use of curl.exe | ||
[switch]$DisableCurl, | ||
# Whether to use curl.exe (default: false) | ||
[switch]$UseCurl, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can't easily switch the meaning of flags here, because we have to assume someone is using this script in CI or elsewhere and it would be a breaking change.
E.g. Github's own image provisioning used to use the powershell script.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I considered that, but the documentation suggested otherwise
we can ignore the suggestion and keep the $DisableCurl flag as it is, and change its value by either
- prompting the user (in interactive mode)
- always make it true ( if the user has not explicitly specified its value)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps even "always make it true " would be a breaking change in certain cases. Therefore "prompting the user" seems to be the only good option
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What I mean is that these can be used as positional parameters.
Changing the meaning of a flag at a certain position breaks scripts that execute the powershell script with a positional argument list.
E.g. see
Set-ExecutionPolicy Bypass -Scope Process -Force;[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; try { Invoke-Command -ScriptBlock ([ScriptBlock]::Create((Invoke-WebRequest https://www.haskell.org/ghcup/sh/bootstrap-haskell.ps1 -UseBasicParsing))) -ArgumentList $true } catch { Write-Error $_ }
The ArgumentList
part.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah I understood that. So my idea is to keep the $DisableCurl flag as it is.
But if we want to disable curl by default, we have two choices
-
we can check if the flag has been specified; by checking this, and if user has not specified the param as either true or false, then we can make it true.
-
In the interactive mode we can prompt the user if they would like to enable curl or not.
The default choice will be "DisableCurl = true".The behaviour of this script in non-interactive mode would remain same (ie DisableCurl will be false)
I think 2nd option is better.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we should add another prompt. The only thing that needs changing is the GHCup website to include true
for the positional parameter that disables curl.
Line 44 in 7f215b0
<span class="ghcup-command" id="ghcup-command-windows">Set-ExecutionPolicy Bypass -Scope Process -Force;[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; try { Invoke-Command -ScriptBlock ([ScriptBlock]::Create((Invoke-WebRequest https://www.haskell.org/ghcup/sh/bootstrap-haskell.ps1 -UseBasicParsing))) -ArgumentList $true } catch { Write-Error $_ } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh right, I didnt think of that. will make a PR soon.
Fixes #1000