User Tools

Site Tools


cs:usable_windows

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
cs:usable_windows [2020/02/12 09:33]
paolo_bolzoni [Scripting]
cs:usable_windows [2020/04/01 05:01] (current)
paolo_bolzoni little touch up in winpty
Line 20: Line 20:
  
  
-==== Admin access ===+=== Msys2 path mangling === 
 + 
 +Since Windows expects paths like ''​c:/​Users/​Sato/''​ and Unix expects paths like ''/​home/​Sato''​ the Msys2 shell does path mangling so that windows programs will find what is expected. 
 + 
 +For example, one types:  
 + 
 +  ./prg.exe / /​c/​Users/​Sato/​Music/​ 
 +   
 +and the passed arguments (''​argv''​ in C parlance) are: 
 + 
 +  C:​\msys64\home\Sato\prg.exe 
 +  C:/​msys64/​ 
 +  C:/​Users/​Sato/​Music/​ 
 + 
 +Normally this is fine, but seldom it breaks programs. To disable it one needs to setup an environment variable: ''​MSYS2_ARG_CONV_EXCL''​ ([[https://​github.com/​msys2/​msys2/​wiki/​Porting#​filesystem-namespaces|Documentation]]). 
 + 
 +== Docker == 
 + 
 +A common example is docker for windows. One probably wants an alias in their ''​~/​.bashrc''​. 
 + 
 +  alias docker='​MSYS2_ARG_CONV_EXCL="​*"​ docker'​ 
 + 
 +So that Msys2 won't mangle any path.  
 + 
 +=== TTY-sensible programs === 
 + 
 +Few programs, like __nodejs__, have problems using Msys2. When you execute them the console seems to hang. It happens because they expect the stdout do be a TTY, in other words stdout must follow the terminal interface protocol. 
 + 
 +The Mysys2 shell does not: 
 + 
 +  $ node -p -e '​Boolean(process.stdout.isTTY)'​ 
 +  false 
 + 
 +Fortunately there is a solution: the program **winpty** 
 + 
 +  $ winpty node -p -e "​Boolean(process.stdout.isTTY)"​ 
 +  true 
 + 
 +Let us see in action: 
 + 
 +  $ node 
 + 
 +Nothing happens, until you press CTRL-C stopping it. 
 + 
 +  $ winpty node 
 +  Welcome to Node.js v13.11.0. 
 +  Type "​.help"​ for more information. 
 +  > 
 + 
 +Much better! **winpty** can be installed with pacman. 
 +==== Admin access ​====
  
 Seldom one needs to execute a command as superuser. Seldom one needs to execute a command as superuser.
cs/usable_windows.1581499991.txt.gz · Last modified: 2020/02/12 09:33 by paolo_bolzoni