Last active
October 26, 2021 20:56
-
-
Save Erisa/836fc540dfe20016046b958556fb1c43 to your computer and use it in GitHub Desktop.
WSL wrapper that runs commands in WSL context with paths converted. For PERSONAL use.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@echo off | |
REM change this files filename to the name of the program you want to launch. | |
REM for example if its called 'ssh.bat' it will run ssh in wsl when launched. | |
REM w.exe is w.js but built with 'npm i -g pkg' and 'pkg w.js -t host' | |
REM you could also just use node normally but i'm weird. | |
\path\w.exe %~n0 %* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@echo off | |
set args= | |
:loop | |
REM Windows Terminal needs a title before it will load i ts default, thanks Windows. | |
title SSH Wrap -- Connecting | |
ssh %args% %* | |
REM Might as well make the most of it. | |
title SSH Wrap - Disconnected | |
set /p args="[Process terminated. Press enter to retry or give extra args]: " | |
goto loop | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// fork of https://github.com/snooopcatt/wslnodejs | |
// code here is for PERSONAL USE and is only made public for reference purposes. | |
// if your computer explodes it is NOT my fault. | |
var args = process.argv.map(arg => { | |
let result = arg.replace(/\\/g, '/') | |
.replace(/([A-Za-z]):/, '/mnt/$1') | |
.replace(/\/mnt\/\w/, s => s.toLowerCase()) | |
.replace(/'/, "\\'"); | |
if (/\/mnt\//.test(result)) { | |
result = `"${result}"`; | |
} | |
return result; | |
}); | |
const { spawnSync, execSync } = require('child_process'); | |
try { | |
execSync(`wsl ${args[2]} ${args.slice(3).join(' ')}`, { encoding : 'utf-8', stdio : 'inherit' }); | |
} catch { | |
// forgive me for i have sinned | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$numOfArgs = $args.Length | |
for ($i=1; $i -le $numOfArgs; $i++) | |
{ | |
$target = $($args[$i-1]) | |
write-host "Trying: $($target)" | |
winget install $args[$i-1] | |
write-host "Finished trying: $($target)" | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment