mirror of
https://github.com/Baipyrus/dotfiles.git
synced 2024-12-27 03:41:45 +00:00
49 lines
1.5 KiB
PowerShell
49 lines
1.5 KiB
PowerShell
|
function InstallWSL
|
||
|
{
|
||
|
# Reference: https://learn.microsoft.com/en-us/windows/wsl/install-manual
|
||
|
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
|
||
|
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
|
||
|
wsl.exe --update
|
||
|
wsl.exe --set-default-version 2
|
||
|
}
|
||
|
|
||
|
function WSLInstall
|
||
|
{
|
||
|
# Skip if any WSL2 installations can be found
|
||
|
$installations = wsl.exe -l -v
|
||
|
$filtered = $installations | Where-Object { $_.Replace("`0", '') -match '^.{2}Ubuntu' }
|
||
|
$versions = $filtered | ForEach-Object { $_.Substring($_.LastIndexOf(' ') + 1) }
|
||
|
if ($null -ne $versions -and $versions.Contains('2'))
|
||
|
{ return
|
||
|
}
|
||
|
|
||
|
$install = Read-Host "Install WSL2 now? [Y/n]"
|
||
|
if ($install.ToLower() -ne 'n')
|
||
|
{ InstallWSL
|
||
|
}
|
||
|
wsl.exe --install -d Ubuntu
|
||
|
|
||
|
# Add newly created user to sudoers group
|
||
|
$user = wsl.exe cut "-d:" "-f1" /etc/passwd
|
||
|
wsl.exe -u root echo "echo ""$user ALL=(ALL) NOPASSWD:ALL"" >> /etc/sudoers.d/$user"
|
||
|
|
||
|
# Update packages and install from list
|
||
|
wsl.exe sudo apt update "&&" sudo apt upgrade "-y"
|
||
|
wsl.exe sudo apt install "-y" (Get-Content ./util/wsl.list)
|
||
|
}
|
||
|
|
||
|
function InstallWSLNeovim
|
||
|
{
|
||
|
param (
|
||
|
[string]$source
|
||
|
)
|
||
|
|
||
|
Import-Module ./windows.psm1
|
||
|
|
||
|
ProcessUrlFiles -sourceDir $source
|
||
|
Set-Location "$env:TMP\nvim-config"
|
||
|
Write-Host "Copying (forcably) configuration to WSL..." -ForegroundColor Yellow
|
||
|
wsl.exe cp -rf . ~/.config/ 2>$null | Out-Null
|
||
|
Set-Location -
|
||
|
}
|