Win10 Depreciating Cmd Shell

63 views
Skip to first unread message

Onorio Catenacci

unread,
Dec 6, 2016, 1:22:08 PM12/6/16
to elixir-lang-core
Hi all,


" . . . starting with Windows 10 build 14971, Microsoft is trying to make PowerShell the main command shell in the operating system.

As a result, PowerShell officially replaces the Command Prompt in the Win + X menu, so when you right-click the Start menu, you’ll only be allowed to launch the more powerful app. Additionally, in File Explorer’s File menu and in the context menu that appears when pressing Shift + right-click in any folder, the old Command Prompt will no longer be available.

Typing cmd in the run dialog will launch PowerShell as well, so Microsoft has made a significant step towards phasing out the traditional Command Prompt."

This isn't a big issue except in terms of iex.bat.  Under Powershell one needs to remember to type "iex.bat" (vs. simply typing "iex") because iex is a command shortcut in Powershell.

I have been toying with the idea of creating powershell scripts for iex, mix, elixir and elixirc for a while anyway.  I don't want to take the time to do the work if there's no interest in it though.  Hence my message here.  I mean from my little bit of playing with this I know it won't be a trivial change.  And I've got other irons in the fire anyway.  

I can check the existing bat shell scripts under Powershell to insure they all work as expected but I think we might as well take advantage of Powershell anyway.  Part of the reason I'm asking about this is also in terms of building unit tests for the shell scripts as well.  I've been working on adding PS scripts for Distillery and so I'm learning a bit about unit testing PS scripts.  But unit testing the PS scripts would require some extra infrastructure to run the tests on build.

Anyway, if I did any work on rewriting the cmd scripts as Powershell scripts for Windows 10 would there be any interest?  I don't mind doing the work but if it's not any interest to the core committers I won't waste my time or the time of the core team.

--
Onorio

José Valim

unread,
Dec 6, 2016, 2:16:31 PM12/6/16
to elixir-l...@googlegroups.com
Thanks for the updates Onorio.

I believe Microsoft is deprecating the cmd shell but it is very likely .bat files will work forever (or at least some handful of years). If that's the case, the most immediate question is: do we gain anything by writing those as powershell scripts today? I understand writing those as powershell in say, 5 years, but given we need to support both kinds of scripts, I would prefer to keep only one format for now.

In any case, it is worth pointing out we already have a mix.ps1 in the bin directory which is to support "mix do foo, bar" in powershell.



José Valim
Skype: jv.ptec
Founder and Director of R&D

--
You received this message because you are subscribed to the Google Groups "elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elixir-lang-core+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/b323b3c6-11e4-49c8-80ed-bfb62ee7489c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Onorio Catenacci

unread,
Dec 6, 2016, 2:36:18 PM12/6/16
to elixir-lang-core
I think we'd gain a few things by rewriting the scripts under Powershell:

1.) Powershell has a unit test framework which we could employ to insure that the shell scripts don't accidentally regress should we need to modify them. Granted I cannot recall the last time I had to change any of the shell scripts (except for the werl switch) but this would be a benefit.

2.) Powershell generally has more powerful shell scripting capabilities than does the cmd shell.  That is while we can accomplish everything we need to do with .bat files, I believe that we could create our shell scripts in a much cleaner and simpler way with PS. Having dug deep into the bat files I can tell you that some of the ways that certain things must be accomplished are truly hacky and horrid.  Again, though, since the shell scripts are changed so rarely I'm not sure this is any real benefit.

3.) Powershell supports script signing.  This may become a requirement for corporate customers to use Elixir.  I mean it may come to a place that corporate customers will not allow execution of any sort of unsigned shell script. 

But, none of these are such powerful benefits that this cannot wait while we work on more important tasks.  I mainly wanted to insure that everyone is aware of how MS is positioning Powershell going forward.  I wasn't sure that everyone had seen that note from MS so I thought I'd make sure that I brought it to everyone's attention.


--
You received this message because you are subscribed to a topic in the Google Groups "elixir-lang-core" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/elixir-lang-core/6yvDy-T_67o/unsubscribe.
To unsubscribe from this group and all its topics, send an email to elixir-lang-core+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4KPuFtiuoJihtp-XZg7n7dVELY%2BihnVGfHUCaF30UwEqQ%40mail.gmail.com.

For more options, visit https://groups.google.com/d/optout.

José Valim

unread,
Dec 6, 2016, 2:39:30 PM12/6/16
to elixir-l...@googlegroups.com
Perfect, thank you!



José Valim
Skype: jv.ptec
Founder and Director of R&D

Reply all
Reply to author
Forward
0 new messages