Eu tenho um script ruby que contém esta linha:
system("open '#{html_path}'")
html_path
é o caminho para um arquivo .html
local. Então o script abre um navegador onde eu normalmente posso inspecionar e ver este arquivo.
Em contraste com um ambiente MacOS, isso não funciona em bash
da WSL. Executando o script nothing acontece, e quando eu executo a chamada open
no console diretamente eu recebo isto:
sujan@LenovoX1:/mnt/c/Users/Jan/Documents/foo$ open Preview.html
Couldn't get a file descriptor referring to the console
Eu já investiguei que open
faz algo diferente no Ubuntu e eu deveria usar see
ou xdg-open
para abrir um arquivo.
Infelizmente, isso também não funciona na WSL:
sujan@LenovoX1:/mnt/c/Users/Jan/Documents/foo$ see ./Preview.html
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /us
r/bin/see line 528.
Couldn't find a suitable web browser!
Set the BROWSER environment variable to your desired browser.
Warning: program returned non-zero exit code #1
e
sujan@LenovoX1:/mnt/c/Users/Jan/Documents/foo$ xdg-open ./Preview.html
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /us
r/bin/run-mailcap line 528.
Couldn't find a suitable web browser!
Set the BROWSER environment variable to your desired browser.
Warning: program returned non-zero exit code #1
/usr/bin/xdg-open: 771: /usr/bin/xdg-open: www-browser: not found
/usr/bin/xdg-open: 771: /usr/bin/xdg-open: links2: not found
/usr/bin/xdg-open: 771: /usr/bin/xdg-open: elinks: not found
/usr/bin/xdg-open: 771: /usr/bin/xdg-open: links: not found
/usr/bin/xdg-open: 771: /usr/bin/xdg-open: lynx: not found
/usr/bin/xdg-open: 771: /usr/bin/xdg-open: w3m: not found
xdg-open: no method available for opening './Preview.html'
Pensando nisso, isso faz sentido: não há navegador disponível dentro da WSL.
Posso de alguma forma definir essa variável BROWSER
, então see
funciona dentro de bash
da WSL?
Pergunta bônus: Se sim, como posso fazer o script ruby funcionar sem alterar esse código? É uma dependência externa: /