Commit Graph
100 Commits
Author SHA1 Message Date
Andrew Schwartzmeyer 7673c4e90f Add Microsoft.PowerShell.Platform module
- Exports the IsCore, IsLinux, IsOSX, and IsWindows variables
- Imported by the default PSL profile
- Can be used automatically in Pester tests and Open PowerShell sessions
- Should maybe become a default module once it is polished
- PowerShellGitHubDev module does not explicitly use it because on
  FullCLR PowerShell (normal Windows development) it will not be
  imported automatically
2016-03-04 12:11:01 -08:00
Andy Schwartzmeyer 37d457f56c Merge pull request #602 from PowerShell/pipes
Clean up usage of pipes, as it causes crashes in debugger sub-prompt
2016-03-01 15:53:15 -08:00
George Fleming 95cea5155b cleanup per andschwa comment 2016-03-01 15:33:29 -08:00
Andrew Schwartzmeyer 744e1e2fbb Add System.Xml.XDocument dependency to host
This resolves #604 but leaves an open question of why the package is
required at runtime, but not at compile-time.
2016-03-01 13:25:31 -08:00
George Fleming ab3203916b Clean up usage of pipes, as it causes crashes in debugger sub-prompt 2016-02-29 09:51:26 -08:00
Andrew Schwartzmeyer 966be6a792 Treat C# warnings as errors 2016-02-24 16:33:17 -08:00
Andrew Schwartzmeyer 1b59a60550 Fix compiler warning about unused variable 2016-02-24 16:33:17 -08:00
Andy Schwartzmeyer 4c69299d89 Merge pull request #586 from PowerShell/multiline
Add support for multi-line input
2016-02-23 16:41:36 -08:00
George Fleming 6776a909b2 Simply code 2016-02-23 15:23:12 -08:00
George Fleming e92c1e80cc Add support for here-string 2016-02-23 15:10:32 -08:00
George Fleming a494516c5d Handle multi-line commands 2016-02-23 12:53:47 -08:00
George Fleming 4bcc0f781f Fix crash when cursor goes 'off screen' 2016-02-22 17:02:37 -08:00
Andrew Schwartzmeyer 56ed87c108 Respect Console.BackGround color
This was bugging me. Instead of using the existing console's background
color, we were hard-coding "Black." Now we just leave it alone.
2016-02-22 11:29:03 -08:00
Andrew Schwartzmeyer b143465401 Remove banner from profile
When trying to use PowerShell a lot, this default banner gets annoying.
I don't think we need it any more. Also change the prompt to just "PS".
2016-02-22 11:29:03 -08:00
Andrew Schwartzmeyer 91765b3db3 Add Emacs-style readline bindings
Very simple implementation of C-(A,E,K,D,B,F,P,R,N,S,J,L) and Alt-(B,F).
2016-02-22 11:29:03 -08:00
George Fleming 567bc785ef Reposition cursor after tab 2016-02-21 13:09:45 -08:00
George Fleming 3a0eee9894 Fix case where tab completion is not at end of command 2016-02-20 17:58:03 -08:00
Andy Schwartzmeyer 5d20ec8e37 Merge pull request #564 from PowerShell/rawui
Reconcile rawui.cs with System.Console
2016-02-19 16:14:12 -08:00
Andrew Schwartzmeyer b257a2d2fc Reconcile rawui.cs with System.Console
With the latest packages, a lot more System.Console API is available.
This commit implements what is now available through the API.

Where an API functions correctly on Linux, the result of a call through
PowerShell works as expected. Where it is not, a nice
`PlatformNotSupported` exception is thrown (and displayed by
PowerShell).

On Linux:

- `$host.ui.RawUI.WindowTitle` can be set but cannot be get
- `$host.ui.RawUI.CusorPosition` can be set and get
- `$host.ui.RawUI.CursorSize` can be get but cannot be set
- `$host.ui.RawUI.MaxPhysicalWindowSize` can be get
- `$host.ui.RawUI.MaxWindowSize` can be get
- `$host.ui.RawUI.WindowPosition` can be get but cannot be set
- `$host.ui.RawUI.WindowSize` can be get but cannot be set
- `$host.ui.RawUI.ReadKey` can be be used, but is only approximate
2016-02-19 11:20:53 -08:00
George Fleming 8cbb08964c Fix a special down arrow scenario 2016-02-19 09:10:40 -08:00
George Fleming 3c2ec835c0 New changes to readline.cs to improve tab-completion and up/down arrow 2016-02-18 15:32:31 -08:00
Andrew Schwartzmeyer e6e4dcafbe Build with new framework and new CLI
All libraries now use the framework `netstandard1.5`, and import the
`dnxcore50` and `portable` frameworks. The app that is published,
Microsoft.PowerShell.Linux.Host, that is, the top-level dependency that
emits an executable, instead targets `netstandardapp1.5` and has a new
`runtimes` key so that .NET CLI's `restore` and `publish` commands know
which runtime implementations to resolve.

When switching to the new CLI, we needed to fix how we specified our
dependencies. In particular, the .NET CLI team helped me figure out how
to download packages that are reference assembly only on Linux, with
implementations on Windows. The result of this is the new `frameworks`
setup.

Additionally, we were incorrectly specifying our build dependencies;
that is, projects we also build (not packages). The solution was much
cleaner. We removed the `type: build` section and replaced it with the
version `1.0.0-*` that all our projects currently use.

The `project.json` files also had their names, descriptions,
indentation, and versions fixed.

The build scripts were simplified.
2016-02-18 10:06:56 -08:00
Andrew Schwartzmeyer dae6e0ebd5 Use Linux.Host in xUnit tests
Make its internals visible to the `powershell-tests` assembly, and use its
`MyHost` and `Listener` classes instead of facades.
2016-02-17 17:03:59 -08:00
Andrew Schwartzmeyer c68164f280 Remove Commands.Omi module
This was a temporary work-around that now needs to be removed (mostly
because the xUnit tests are out-of-date because we didn't have a runner,
and it's not worth it to fix them). Rather than let more cruft
accumulate, we need to remove it.

Resolves #551
2016-02-17 17:03:59 -08:00
George Fleming 70d42fc581 Move check of no match 2016-02-16 09:52:21 -08:00
George Fleming 7648857c97 Additional changes to correct tab-completion 2016-02-16 09:46:26 -08:00
George Fleming c74f68494a Fixes one of tab-completion problems 2016-02-12 15:23:46 -08:00
George Fleming 1ec5676f25 Fix "handle is invalid" error on AppVeyor 2016-02-12 11:15:57 -08:00
Andrew Schwartzmeyer 0ef4e90f9a Add readme to Linux.Host 2016-02-10 15:29:06 -08:00
Andrew Schwartzmeyer dacaebefb8 Move Pester to submodule to Host/Modules
This way it can also be deployed automatically, removing the last manual
copy steps from our build scripts.

Travis and AppVeyor configurations updated for new submodule location.
2016-02-10 12:58:56 -08:00
Andrew Schwartzmeyer 79f5db71fe Add update-content.sh script 2016-02-10 12:52:36 -08:00
Andrew Schwartzmeyer 74a3855602 Add Modules to tree for content
Same as ps1xml files: already deployed in the wild, i.e. not source
code. Allows to remove recursive copies from build scripts and rely just
on CLI's behavior.
2016-02-10 12:48:46 -08:00
Andrew Schwartzmeyer 9f95aa3203 Use content to publish PSL_profile.ps1 2016-02-10 12:44:49 -08:00
Andrew Schwartzmeyer 9a2a8555e3 Copy ps1xml files into tree to use content
This allows us to remove the duplicated copying steps from our Windows
and Linux build scripts. These files are already distributed to users of
Windows, and so are not "source code."
2016-02-10 12:38:00 -08:00
Andrew Schwartzmeyer 89ad38beae Guard prompt function
Fixes #485.
2016-02-05 11:51:17 -08:00
Andrew Schwartzmeyer 15e2edefba Bring back BufferWidth and BufferHeight 2016-02-02 17:05:57 -08:00
Andrew Schwartzmeyer a4fd57298d Revert "Skip BufferSize when not interactive"
This reverts commit 9a5c010f54.
2016-02-02 17:05:49 -08:00
Andrew Schwartzmeyer 92127e4cfc Uses spaces instead of tabs in project.json files 2016-02-02 15:43:54 -08:00
Andrew Schwartzmeyer 172ddc6ad1 Refactor project.json dependencies
The packages are now dependencies of the `dnxcore50` framework itself,
rather than globally. The `compilationOptions` were pruned, with
`CORECLR` moved to frameworks, `_CORECLR` removed for all but
`Management.Infrastructure`, and `LINUX` moved to a new `Linux`
configuration, used only in `build.sh`. This configuration is
purposefully absent from libraries that do not use `LINUX`, so that it
is not relied upon without strong consideration. The dependencies
were pruned to reduce duplication.
2016-02-02 15:43:54 -08:00
Andrew Schwartzmeyer a8be633089 Bump packages to rc3-23729 2016-02-02 15:43:54 -08:00
George Fleming 7e2b25e4d0 Use ConsoleReadLine for script debugger
Instead of Console.ReadLine() so that arrow keys and tab-completion can
be used.
2016-02-01 17:36:30 -08:00
Andrew Schwartzmeyer c162c1c19e Title case ExecuteHelper function 2016-02-01 13:12:29 -08:00
Andrew Schwartzmeyer bbadc64407 Add --noprofile option to host
Disables parsing of all profiles when used.
2016-02-01 13:12:29 -08:00
Andrew Schwartzmeyer 499e5d4142 Remove unsupported --working-dir flag 2016-02-01 12:57:29 -08:00
Andrew Schwartzmeyer 3fcb9ae569 Fix up --help
Moved to argument parsing and cleaned up.
2016-02-01 12:57:29 -08:00
Andrew Schwartzmeyer 71f670f86c Add packages required for updated sources
Commands.Utility now needs Microsoft.CodeAnalysis.CSharp, which doesn't
explicitly target `dnxcore50`, so now Commands.Utility and the packages
which depend on it now much `import` the Portable Windows framework.
This also required adding the aspnetvnext feed.

System.Management.Automation now requires System.Diagnostics.StackTrace.
2016-01-26 16:49:28 -08:00
Andrew Schwartzmeyer e6a4c45485 Enable Environment.Exit
Was not previously available.

Moved so `--command` exits with code too.
2016-01-22 14:12:53 -08:00
Andrew Schwartzmeyer fe0ca95c22 Enable more UI code that's now available 2016-01-22 14:12:53 -08:00
Andrew Schwartzmeyer 9a5c010f54 Skip BufferSize when not interactive
So short of re-implementing an entire new PSHost for non-interactive
sessions, this is a work-around. If a script (file or command) is passed
to the shell, we tunnel that information through to the raw UI so it can
skip calling out to the TTY (which may not exist).

There has to be a better way to do this, but the structure of PSHost >
UI > Raw UI just makes this incredibly difficult.
2016-01-22 12:40:04 -08:00
Andrew Schwartzmeyer b451d02c5a Update profile banner 2016-01-20 10:26:13 -08:00