aboutsummaryrefslogtreecommitdiff
path: root/install-win.ps1
diff options
context:
space:
mode:
Diffstat (limited to 'install-win.ps1')
-rw-r--r--install-win.ps193
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
20function Write-Ok($msg) {
21 Write-Host "OK $msg" -ForegroundColor Green
22}
23
24function Write-Step($msg) {
25 Write-Host "==> $msg" -ForegroundColor Cyan
26}
27
28function 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
47function 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
58function 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
72function 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
83function 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
93Main