J'ai un script ruby qui contient cette ligne :
system("open '#{html_path}'")
html_path
est le chemin d'un fichier local .html
. Ainsi, le script ouvre un navigateur où je peux normalement inspecter et afficher ce fichier.
Contrairement à un environnement MacOS, cela ne fonctionne pas dans bash
de WSL. Lors de l'exécution du script, il ne se passe rien, et lorsque j'exécute l'appel à open
directement dans la console, j'obtiens ceci :
sujan@LenovoX1:/mnt/c/Users/Jan/Documents/foo$ open Preview.html
Couldn't get a file descriptor referring to the console
J'ai déjà vérifié que open
fait quelque chose de différent sous Ubuntu et que je devrais utiliser see
ou xdg-open
pour ouvrir un fichier.
Malheureusement, ceux-ci ne fonctionnent pas non plus dans 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
et
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'
En y réfléchissant, cela a du sens : il n'y a pas de navigateur disponible dans WSL.
Puis-je définir cette variable BROWSER
de manière à ce que see
fonctionne dans bash
de WSL?
Question bonus : Si oui, comment puis-je faire en sorte que le script ruby fonctionne sans modifier ce code ? C'est une dépendance externe :/