Canop / broot

A new way to see and navigate directory trees : https://dystroy.org/broot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Username with one or more spaces causes an error

2gn opened this issue · comments

commented

Steps to reproduce

  1. (optional) change your username to include one or more spaces
  2. If you have already br installed, run br --install
  3. run broot --install
  4. the command above creates $HOME\Documents\WindowsPowershell\Profile.ps1 with the following contents
    (when username is "User Name")
. C:\Users\User\ Name\AppData\Roaming\dystroy\broot\config\launcher\powershell\br.ps1

Possible solution

Use $HOME environment variable instead so windows will automatically expand it on execution appropriately.

Using $HOME directly in the command isn't something you can do when creating a file in a program, you have to expand the path.

But an appropriate escaping is probably missing.

commented

This also happens when trying to use inshellisense, by the way.

PS …\User Name\Development> inshellisense
'C:\Users\User' is not recognized as an internal or external command,
operable program or batch file.
commented

It seems there are two errors that should be resolved.

  1. issue above
  2. File not found error
PS …\Development\broot> br
File not found: "C:\\Users\\User Name\\AppData\\Local\\Temp\\tmpBA8F.tmp"

$process = Start-Process -FilePath 'broot.exe' `
-ArgumentList "--outcmd $($cmd_file.FullName) $args" `
-NoNewWindow -PassThru -WorkingDirectory $PWD
Wait-Process -InputObject $process #Faster than Start-Process -Wait
If ($process.ExitCode -eq 0) {

In line 29 of powershell.rs, (New-TemporaryFile).FullName is expanded inside string expression. That's causing the error.

Plus, I noticed that broot --install patches the script only for natively installed powershell, and doesn't work with powershell core, which is newer. I'll make a different PR/issue for this.