GitHub's API is throttled to 60 requests per hour per IP address when
for non-authenticated calls, which was causing severe CI flakiness.
While this adds another set of URLs to update for each release, the
alternative was adding an OAuth token and maintaining its ownership.
Moreover, this code is simpler than the previous API parsing.
Since it is required. Note that we do *not* unsafely link the OpenSSL
libraries into the system folders, as we instead patch .NET Core's
libraries to find OpenSSL in the installed location.
I think this logic was originally added with the assumption that any
hostname with a dot in it was an FQDN. I believe this is incorrect. The
hostname is the hostname regardless of included dots, and getting the
FQDN amounts to always querying for the canonical name.
- .NET Core RID suffixes removed
- `el7.centos` suffix added to RPM
- `1ubuntu1.14.04.1` iteration used for DEB packages
`~` cannot be used after `ubuntu1` because GitHub release renames it to
a `.`; additionally, no packages lack the final suffix `.1`. While my
machine is `.5` I could find no packages that went past `.3`, so let's
use this to indicate that it works for `14.04.1` and forward.
We are *not* recreating the alpha.9 packages, but will we rename them
accordingly. This means that the filenames will be "correct" but the
meta-data will be out-of-date.
Moved Unix package code into New-UnixPackage, switching on $Types to
call the appropriate function given the list of types.
Also fixed bug with chmod on a symlink; it was unnecessary.
These are not currently implemented and so should not show up as
available.
The *-Computer cmdlets are already not compiled for Unix (and so not
available), so let's not declare them in the manifest.
The Get-ComputerInfo cmdlet does not work on Unix and so should not be
made available.
Test-Connection depends on an unavailable WMI provider.
Get/Set-TimeZone are not yet ported.
Start-PSPester must ensure that the environment variable `PSMODULEPATH`
is not set before starting the new PowerShell process.
If it is set, then the tests are not guaranteed to be correct,
as they will be operating with the host process's `PSMODULEPATH`,
thus ignoring their own modules.
I also refactored the Start-PSPester command setup code.
If the attempt to get the name fails, throwing an exception results in
PowerShell crashing. Instead, we should simply return empty data.
"unknown" is specifically not returned because it would be ambiguous; it
is not impossible to have an actual user or domain named "unknown".
Due to https://github.com/Homebrew/brew/pull/597,
.NET Core's installation instructions of `brew link --force openssl` are
now invalid (for good reasons, due to security holes). Until .NET Core
updates their libraries to find the OpenSSL libraries correctly, we can
update them as part of `Start-PSBootstrap`.
See https://github.com/dotnet/cli/issues/3964
Due to virtual key codes on Windows, simple chords like Ctrl+] are not
recognized as such. Instead, the ConsoleKey is Oem6, and the KeyChar is
an control code.
* Remove superfluous link to releases page
* Remove superfluous link to docs/build
* Add column back for install instructions
* Add extra link to the FAQ
* Links fixed.
* Link to maintainers removed; superfluous in this document.
* TODO added to changelog.
(I don't like this but was hesitant to remove it).
* Periods and spelling fixed.
This function is required for PSRP on Linux, as we need to wrap the call
into WSManPluginManagedEntryWrapper.InitPlugin such that it is invoked
via reflection from an assembly loaded with our custom context.
Again due to the fact that relying on Console.IsOutputRedirected (as
System.Console does for these APIs) causes bugs when pseudo-TTYs are
used (since the output is not redirected, but the APIs nonetheless can't
be used properly). So we ran into a problem where the value of CursorTop
and Console.BufferHeight were lies, and so we accidentally attempted to
set it numbers below zero. Guard everything.
Instead of half-running PowerShell with -noninteractive (and expecting
the user debugging to enter more arguments), the latest stable version
of VS Code allows us to launch an external console. This requires either
Gnome Terminal or xterm (sadly not Xfce Terminal), but given either (and
xterm is almost always available to install), we can now launch an
interactive PowerShell session to debug.
This was dead code. PreParseCommandLine was called only when tracing was
enabled, which meant that the tracing itself was useless, as it was not
tracing what the actual code was doing.
I believe the intention of this tracing was to "guess" how the native
commands on Windows *might* parse their command-line arguments, but the
traced result was not guaranteed to be accurate. Since we cannot provide
accurate tracing, the tracer was removed in its entirety.
The PreParseCommandLine function was the only place where
CommandLineToArgv was called, so with it removed, the entire native
methods class here can be removed.