]> apps.delaporte.us Git - dotfiles.git/blobdiff - bootstrap.ps1
There are a few of my favorite PowerShell modules
[dotfiles.git] / bootstrap.ps1
index 637716894073ac7ee606d3b7b4d80b1318f8f7fd..623535a94b071af13f0825566480f3926cf7a891 100644 (file)
@@ -1,21 +1,66 @@
-# Setup my PowerShell Profile (on Windows)
-if(-Not(Test-Path -Path $profile)) {
-  New-Item -Path "$profile" -ItemType File
+<#
+.SYNOPSIS
+
+Setup my Windows PowerShell environment.
+
+.DESCRIPTION
+
+.NOTES
+
+Relies heavily on the Chocolatey package manager.
+
+#>
+
+param(
+  # [Parameter(Mandatory=$true, HelpMessage="Install Development Tools")]
+  [switch]$dev_tools,
+  # [Parameter(Mandatory=$true, HelpMessage="Install Modeling Tools")]
+  [switch]$archi,
+  # [Parameter(Mandatory=$true, HelpMessage="Install Vim")]
+  [switch]$vim,
+  # [Parameter(Mandatory=$true, HelpMessage="Setup PowerShell Profile")]
+  [switch]$profile,
+  [switch]$fav_ps_modules
+)
+
+## Always Install Chocolatey if missing
+$testchoco = powershell choco -v
+if(-not($testchoco)){
+  Write-Output "Seems Chocolatey is not installed, installing now..."
+  Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
+}
+
+# OWASP ZAP for web application security scanning
+if($false) {
+  choco install zap
+}
+
+## TODO: Can I set this via command line: chrome://flags/#enable-force-dark 
+
+if($doBootStrap) {
+  # DONE!
+  New-Item -ItemType File -Path $doneFlagFile
 }
 }
-$sourceMeFile = "$pwd\Microsoft.PowerShell_profile.ps1"
-$sourceMeLine = '$profileContents = [string]::join([environment]::newline, (get-content -path'
-$sourceMeLine += $sourceMeFile
-$sourceMeLine += '));invoke-expression $profileContents'
 
 
-Write-Host $sourceMeLine
+# ArchiMate for enterprise modeling
+if($archi) {
+  choco install archi
+}
 
 
-$profileContents = Get-Content $profile 
-if(! $profileContents -contains $sourceMeLine) {
-  Add-Content -Path $profile -Value $sourceMeLine
+# Install dev tools
+if($dev_tools){
+  ./install/dev.ps1
 }
 }
-# Install Chocolatey
 
 
-# Install Python3 and Pip
+if($vim){
+  ./install/vim.ps1
+}
 
 
-# Install Stub PowerShell Profile that sources the one from DotFiles
+if($profile){
+  ./install/profile.ps1
+}
 
 
+if($fav_ps_modules) {
+  Write-Host "Reminder: Need to install these modules with admin escalation."
+  ./install/admin/favorite-ps-modules.ps1
+}