Commit Graph
62 Commits
Author SHA1 Message Date
Dongbo Wang 7f83c48ca5 Add support to ShellExecute in powershell core when it's running on Windows full SKUs (#3281)
* Add ShellExecute support to PowerShell core on windows full desktop
* Add tests for Start-Process and update existing related tests
2017-03-14 11:11:41 -07:00
Jason Shirk 02b5f357a2 Remove trailing whitespace (#3001) 2017-01-16 13:31:14 -08:00
David Christian 9c9b56d22f Updated Split-Path to work with UNC Roots (#2788) 2016-12-04 15:00:32 -08:00
Jason Shirk (POWERSHELL) 386b4f37f4 Remove CheckForSevereException and private FailFast
Our private implementation of FailFast was likely introduced
when each individual application needed it's own code to
get Watson reports. The CLR takes care of this for us now,
so we don't need our implementation.

Our method CheckForSevereException was also introduced in
the early days of the CLR - the exceptions it was checking
for aren't actually raised the CLR anymore, they just FailFast.
I removed them as there is a tiny bit of overhead (in code size)
and also in the generated code, e.g. dynamic sites called the method.
2016-12-01 13:46:56 -08:00
Sergei Vorobev 3363b248a0 Fix code errors found by PVS-Studio (#2695)
* Fix errors found by PSV-studio analyzer

http://www.viva64.com/en/b/0447/

* Remove old redundent comment

errorAsts is passed by ref
2016-11-17 11:20:04 -08:00
Matt Wrock e1db642c7f Ensure *nix platforms add an initial / rooted drive (#2679) 2016-11-15 10:27:12 -08:00
Charu Bassi 85825e2b0b Fix Resolve-Path -LiteralPath for drive paths (#2572)
Resolving #2570.
Ignore drive paths in the check. If the input is a drive path,
then "\" is passed as the path to GetDriveQualifiedPath with drive info.
Since, the path here starts with "\", treatAsRelative is set to false
which prevents further formatting of this path.
The check is only valid for PSDrives with root path equals to UNC paths or the paths
in unix.
2016-11-01 18:01:52 -07:00
Charu Bassi ee2feaa827 Fix set-content failure for creating file in psdrive. (#2392)
Resolving #2206

Set-Content fails to create a file for PSDrive path, if the path root
begins with defaultPathSeperatorString (ex: UNC path and paths in Single
rooted filesystems like Unix)
2016-10-28 14:31:02 -07:00
Andrew Schwartzmeyer 2a6b84ed1b Clean up IsHardLink 2016-10-14 15:42:59 -07:00
Andrew Schwartzmeyer b4b2278571 Clean up CreateHardLink 2016-10-14 15:42:58 -07:00
Andrew Schwartzmeyer 0ce5575f57 Clean up CreateSymLink 2016-10-14 15:42:58 -07:00
Andrew Schwartzmeyer 82867a5c12 Clean up FollowSymLink 2016-10-14 15:30:19 -07:00
Andrew Schwartzmeyer 196a37b118 Add native errno to ErrorCategory mapper 2016-10-14 15:30:19 -07:00
Andrew Schwartzmeyer e1aeeaa9c2 Switch to Win32Exception(GetLastWin32Error)
This is verified to work "correctly" on Linux in that it gets the
`perror` for the last set value of errno in native code.

No extra mapping or handling needs to be done on our part.

Keeping the strerror_r implementation in the history for the valuable
implementation of config.h.in in the library.
2016-10-14 15:30:19 -07:00
Dongbo Wang f02b6ef97a Exclude 'Registry' and 'Certificate' providers from UNIX PS since they don't work on UNIX platform.
With this change, 'Registry' and 'Certificate' providers won't be compiled for UNIX PS.
2016-10-14 10:02:44 -07:00
Charu Bassi 5cbf1b43de Fix 'Get-ChildItem -Hidden' to work on system hidden files like c:\hiberfil.sys c:\pagefile.sys and c:\swapfile.sys 2016-09-27 16:13:03 -07:00
George Chakhidze e8190a569b Use prefixed QNames in XPath expressions used by all implementations of ICmdletProviderSupportsHelp interface
Also includes these bugfixes:
  - WSManConfigProvider.GetHelpMaml: Tried to load XML from
    MemoryStream that was created from file name string. Use XmlReader
    instead.
  - WSManConfigProvider.GetHelpMaml: Use Path.Combine instead of
    platform-specific directory separator character.
  - WSManConfigProvider.GetHelpMaml: CmdletHelpPath MAML XML element
    attribute `ID` name casing seems inconsistent with other help.xml
    files. XPath 1.0 does not support case-insensitive expressions,
    use both `id` and `ID` in query.
  - Add Pester test to verify that Get-Help shows provider-specific help.

Fixes #2088
2016-09-13 09:40:14 +04:00
Josh Soref fbec6eca5a spelling: locals in src/System.Management.Automation/namespaces 2016-09-01 16:03:02 +00:00
Josh Soref c1f622ac7f spelling: comments in src/System.Management.Automation/namespaces 2016-08-28 05:51:23 +00:00
Dongbo Wang 3ff19e1d80 Update module path calculation logic to support side-by-side.
Use 'Path.PathSeparator' instead of ';' to separate paths, so that it uses ';' on windows and ':' on unix.
Also refactor some code as part of the change.
2016-08-11 21:36:48 -07:00
PowerShell Team c1ee6c9d6d Refactoring - replace always null expressions with null 2016-08-03 12:14:28 -07:00
PowerShell Team 22d2273ce4 Refactoring - use ?? in more places 2016-08-03 12:14:28 -07:00
PowerShell Team 85d6e9f022 Refactoring - adjust modifiers declaration order 2016-08-03 12:14:28 -07:00
PowerShell Team ae8d2ed794 Refactor - convert to auto-property
Mostly using R# to automatically refactor, with some manual
fixups where it wouldn't work automatically (e.g. xml comments
on fields) or some it seemed to miss.

Some minor code reformatting was also done on properties near
other stuff I was manually inspecting.
2016-08-03 12:14:28 -07:00
PowerShell Team bc4901bd59 Remove unused using statements 2016-08-03 12:06:06 -07:00
PowerShell Team 403ae3f53f Initial run of code formatter
I (Jason Shirk) ran https://github.com/dotnet/codeformatter with the default rules, basically:

    codeformatter /nocopyright "/c:DEBUG,UNIX,CORECLR" @files.rsp

This caused a few problems building, which were fixed up manually.

Notable changes:

`this.` is removed unless needed to disambiguate.
private instance fields are renamed to have a `_` prefix.
private static fields are renamed to have a `s_` prefix.

I left some projects alone (like PackageManagement) and also left some generated code alone.
2016-08-01 15:57:03 -07:00
Sergei Vorobev a704a53f08 Make Get-Item env: case-aware on Unix
Fix #1196
2016-07-28 14:19:36 -07:00
Jason Shirk (POWERSHELL) 673dd2c355 Change preprocessor macro LINUX to UNIX 2016-07-22 10:49:45 -07:00
Andrew Schwartzmeyer 35e24ce6d4 Clean up CreateSymLink() 2016-07-14 17:34:12 -07:00
Andrew Schwartzmeyer a9484e45e9 Remove Platform.SupportsRemoveDrive query 2016-07-14 17:34:12 -07:00
Andrew Schwartzmeyer dbe16ca5d7 Remove Platform.SupportsReparsePoints query 2016-07-14 17:34:12 -07:00
Andrew Schwartzmeyer 465e55d32a Remove Platform.HasNetworkDriveSupport query 2016-07-14 17:34:12 -07:00
Andrew Schwartzmeyer ab882cb04d Remove Platform.UseDotNetToQueryFileAttributes query 2016-07-14 17:34:12 -07:00
Andrew Schwartzmeyer 2249afcd0a Remove Platform.HasUNCSupport query 2016-07-14 17:34:12 -07:00
Andrew Schwartzmeyer 527f30a013 Remove Platform.HasSingleRootFilesystem query 2016-07-14 17:34:12 -07:00
Andrew Schwartzmeyer 73a1a51f69 Remove Platform.HasRegistry query 2016-07-14 17:34:12 -07:00
Andrew Schwartzmeyer 4e518fe1c7 Remove Platform class override of PlatformNotSupportedException
This was confusing and unused in most places, exception itself removed
in cleanup.
2016-07-14 17:34:12 -07:00
Andrew Schwartzmeyer 50e6627a8e Throw PlatformNotSupported on Windows .NET Core build 2016-07-08 14:08:22 -07:00
Andrew Schwartzmeyer 6200f084cd Invoke-Item and Get-Help -Online are unsupported on Nano
These currently fail at runtime on Nano, and will continue to do so. But
this implements these much needed cmdlets for Open PowerShell.

If there is a way to determine that PowerShell is being run on the Nano
OS at runtime, then we could instead throw a platform unsupported
exception, but this cannot be based on the target compilation framework,
as .NET Core is shared for both Nano and Windows.
2016-07-08 13:48:36 -07:00
Andrew Schwartzmeyer ef2ba40ca7 Use start in Invoke-Item to open items on Windows
Since `UseShellExecute` cannot be used.
2016-07-08 13:48:36 -07:00
Alex Jordan aefeb80108 Fixed scope issue in invokeitem 2016-07-05 18:20:02 -07:00
Alex Jordan e580941667 UseShellExecute moved to OS guards for Invoke-Item 2016-07-05 16:05:58 -07:00
Alex Jordan fd7a16778c Fixed unknown char in comments
Cosmetic change.
2016-06-29 10:52:56 -07:00
Alex Jordan eec3b334cc Adding logic for invoke-item for non-Windows OSes 2016-06-29 10:52:56 -07:00
Andrew Schwartzmeyer b30aabc12b Revert string comparison changes
These comparisons did not need to be changed as the input path is not
modified. The normalized relate path created from the stack (if this
code path is taken) is created with the correct path separators.
2016-06-15 12:16:54 -07:00
Andrew Schwartzmeyer d162437b7b Remove string literals in registry provider 2016-06-15 12:16:54 -07:00
Andrew Schwartzmeyer 3262a4b3ec Fix GetDriveQualifiedPath for single root filesystems
Reverted to original code and fixed correctly.
2016-06-15 12:16:54 -07:00
Andrew Schwartzmeyer 3464f9aee3 Fix ExpandMshGlobPath for single root filesystems
Reverted to original code and fixed correctly.
2016-06-15 12:16:54 -07:00
Andrew Schwartzmeyer ee40426fb3 Fix path root comparisons for Linux
Assuming the path may not be normalized, to make PowerShell slash
agnostic in a filesystem whose "drive" is a '/' and a 'C:\', we need to
compare to both '/' and '\' for users of PowerShell's alternate path
separator on Linux ('\').
2016-06-15 12:16:54 -07:00
Andrew Schwartzmeyer 047525aa9d Revert unnecessary changes 2016-06-14 16:21:17 -07:00