diff options
Diffstat (limited to 'install-win.ps1')
| -rw-r--r-- | install-win.ps1 | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/install-win.ps1 b/install-win.ps1 new file mode 100644 index 0000000..41b3b51 --- /dev/null +++ b/install-win.ps1 | |||
| @@ -0,0 +1,93 @@ | |||
| 1 | #Requires -Version 5.1 | ||
| 2 | <# | ||
| 3 | Windows-natives Pendant zu install.sh (ersetzt install-win.cmd). | ||
| 4 | install.sh bleibt unveraendert - kopiert (statt zu verlinken) die | ||
| 5 | relevanten Konfigurationen an ihre nativen Windows-Zielorte. Keine | ||
| 6 | Admin-Rechte noetig (keine Symlinks). | ||
| 7 | |||
| 8 | Aufruf: | ||
| 9 | .\install-win.ps1 | ||
| 10 | |||
| 11 | Falls die Ausfuehrung durch die Execution Policy blockiert wird: | ||
| 12 | powershell -ExecutionPolicy Bypass -File .\install-win.ps1 | ||
| 13 | |||
| 14 | Hinweis: Es wird KOPIERT, nicht verlinkt. Nach Aenderungen im Repo | ||
| 15 | dieses Skript erneut ausfuehren, um die Kopien zu aktualisieren. | ||
| 16 | #> | ||
| 17 | |||
| 18 | $ErrorActionPreference = "Stop" | ||
| 19 | |||
| 20 | function Write-Ok($msg) { | ||
| 21 | Write-Host "OK $msg" -ForegroundColor Green | ||
| 22 | } | ||
| 23 | |||
| 24 | function Write-Step($msg) { | ||
| 25 | Write-Host "==> $msg" -ForegroundColor Cyan | ||
| 26 | } | ||
| 27 | |||
| 28 | function Write-SkipMsg($msg) { | ||
| 29 | Write-Host "- $msg" -ForegroundColor DarkGray | ||
| 30 | } | ||
| 31 | |||
| 32 | $RepoRoot = $PSScriptRoot | ||
| 33 | |||
| 34 | $NvimSrc = Join-Path $RepoRoot "nvim" | ||
| 35 | $NvimDst = Join-Path $env:LOCALAPPDATA "nvim" | ||
| 36 | |||
| 37 | $GitConfigSrc = Join-Path $RepoRoot "git\config" | ||
| 38 | $GitConfigDst = Join-Path $env:USERPROFILE ".gitconfig" | ||
| 39 | |||
| 40 | $GitUp2partsSrc = Join-Path $RepoRoot "git\config-up2parts" | ||
| 41 | $GitXdgDir = Join-Path $env:USERPROFILE ".config\git" | ||
| 42 | $GitUp2partsDst = Join-Path $GitXdgDir "config-up2parts" | ||
| 43 | |||
| 44 | $NpmrcSrc = Join-Path $RepoRoot "npm\npmrc" | ||
| 45 | $NpmrcDst = Join-Path $env:USERPROFILE ".npmrc" | ||
| 46 | |||
| 47 | function Copy-NvimConfig { | ||
| 48 | Write-Step "nvim -> $NvimDst" | ||
| 49 | |||
| 50 | if (Test-Path $NvimDst) { | ||
| 51 | Remove-Item -Recurse -Force $NvimDst | ||
| 52 | } | ||
| 53 | |||
| 54 | Copy-Item -Recurse -Force $NvimSrc $NvimDst | ||
| 55 | Write-Ok $NvimDst | ||
| 56 | } | ||
| 57 | |||
| 58 | function Copy-GitConfig { | ||
| 59 | Write-Step "git\config -> $GitConfigDst" | ||
| 60 | Copy-Item -Force $GitConfigSrc $GitConfigDst | ||
| 61 | Write-Ok $GitConfigDst | ||
| 62 | |||
| 63 | if (-not (Test-Path $GitXdgDir)) { | ||
| 64 | New-Item -ItemType Directory -Path $GitXdgDir -Force | Out-Null | ||
| 65 | } | ||
| 66 | |||
| 67 | Write-Step "git\config-up2parts -> $GitUp2partsDst" | ||
| 68 | Copy-Item -Force $GitUp2partsSrc $GitUp2partsDst | ||
| 69 | Write-Ok "$GitUp2partsDst (wird per includeIf aus .gitconfig eingebunden)" | ||
| 70 | } | ||
| 71 | |||
| 72 | function Copy-Npmrc { | ||
| 73 | if (Test-Path $NpmrcDst) { | ||
| 74 | Write-SkipMsg "$NpmrcDst existiert bereits, uebersprungen" | ||
| 75 | return | ||
| 76 | } | ||
| 77 | |||
| 78 | Write-Step "npm\npmrc -> $NpmrcDst" | ||
| 79 | Copy-Item -Force $NpmrcSrc $NpmrcDst | ||
| 80 | Write-Ok $NpmrcDst | ||
| 81 | } | ||
| 82 | |||
| 83 | function Main { | ||
| 84 | Copy-NvimConfig | ||
| 85 | Copy-GitConfig | ||
| 86 | Copy-Npmrc | ||
| 87 | |||
| 88 | Write-Host "" | ||
| 89 | Write-Host "Fertig. Dateien wurden KOPIERT, nicht verlinkt." -ForegroundColor Green | ||
| 90 | Write-Host "Nach Aenderungen im Repo dieses Skript erneut ausfuehren." | ||
| 91 | } | ||
| 92 | |||
| 93 | Main | ||
