From 353604648323655e10d6df5707606fc0a65ff0d9 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Tue, 4 Jul 2023 13:15:48 -0400 Subject: [PATCH] add integration scripts --- vendor/bin/add-cmderrootenvar.ps1 | 1 + vendor/bin/add-cmdertodesktop.ps1 | 36 +++++++++++ vendor/bin/add-vscodeprofile.ps1 | 39 ++++++++++++ vendor/bin/add-windowsterminalprofiles.ps1 | 74 ++++++++++++++++++++++ vendor/bin/set-shortcut.ps1 | 21 ++++++ 5 files changed, 171 insertions(+) create mode 100644 vendor/bin/add-cmderrootenvar.ps1 create mode 100644 vendor/bin/add-cmdertodesktop.ps1 create mode 100644 vendor/bin/add-vscodeprofile.ps1 create mode 100644 vendor/bin/add-windowsterminalprofiles.ps1 create mode 100644 vendor/bin/set-shortcut.ps1 diff --git a/vendor/bin/add-cmderrootenvar.ps1 b/vendor/bin/add-cmderrootenvar.ps1 new file mode 100644 index 0000000..1cef233 --- /dev/null +++ b/vendor/bin/add-cmderrootenvar.ps1 @@ -0,0 +1 @@ +setx cmder_root "${env:cmder_root}" diff --git a/vendor/bin/add-cmdertodesktop.ps1 b/vendor/bin/add-cmdertodesktop.ps1 new file mode 100644 index 0000000..7309cbf --- /dev/null +++ b/vendor/bin/add-cmdertodesktop.ps1 @@ -0,0 +1,36 @@ +if (test-path "c:\windows\set-shortcut.ps1") { + $setShortcut = "c:\windows\set-shortcut.ps1" +} + +if (test-path "${env:USERPROFILE}\cmderdev") { + $env:cmder_root = "${env:USERPROFILE}\cmderdev" + write-host "Creating '${env:USERPROFILE}\Desktop\Cmderdev.lnk'..." + + if (test-path "${env:USERPROFILE}\cmderdev\vendor\bin\set-shortcut.ps1") { + $setShortcut = "$env:cmder_root\vendor\bin\set-shortcut.ps1" + } + + start-process -NoNewWindow -filePath "powershell.exe" -ArgumentList "-file `"${setShortcut}`" -sourceexe `"${env:cmder_root}\Cmder.exe`" -DestinationPath `"${env:USERPROFILE}\Desktop\Cmderdev.lnk`" -WorkingDirectory `"${env:cmder_root}`"" +} + +if (test-path "${env:USERPROFILE}\cmder") { + $env:cmder_root = "${env:USERPROFILE}\cmder" + + if (test-path "${cmder_root}\vendor\bin\set-shortcut.ps1") { + $setShortcut = "$env:cmder_root\vendor\bin\set-shortcut.ps1" + } + + write-host "Creating '${env:USERPROFILE}\Desktop\Cmder.lnk'..." + start-process -NoNewWindow -filePath "powershell.exe" -ArgumentList "-file `"${setShortcut}`" -sourceexe `"$env:cmder_root\Cmder.exe`" -DestinationPath `"${env:USERPROFILE}\Desktop\Cmder.lnk`" -WorkingDirectory `"${env:USERPROFILE}`"" +} elseif (test-path "C:\tools\cmder") { + $env:cmder_root = "C:\tools\cmder" + + if (test-path "${cmder_root}\vendor\bin\set-shortcut.ps1") { + $setShortcut = "$env:cmder_root\vendor\bin\set-shortcut.ps1" + } + + write-host "Creating '${env:USERPROFILE}\Desktop\Cmder.lnk'..." + start-process -NoNewWindow -filePath "powershell.exe" -ArgumentList "-file `"${setShortcut}`" -sourceexe `"$env:cmder_root\Cmder.exe`" -DestinationPath `"${env:USERPROFILE}\Desktop\Cmder.lnk`" -WorkingDirectory `"${env:USERPROFILE}`"" +} + + diff --git a/vendor/bin/add-vscodeprofile.ps1 b/vendor/bin/add-vscodeprofile.ps1 new file mode 100644 index 0000000..c2342e8 --- /dev/null +++ b/vendor/bin/add-vscodeprofile.ps1 @@ -0,0 +1,39 @@ +# VSCode +$VSCodeUserSettings = "$env:APPDATA/Code/User" +$VSCodeSettings = "$VSCodeUserSettings/settings.json"; +$VSCodeSettingsNew = $VSCodeSettings.replace('.json', '-new.json') + +if (test-path $VSCodeSettings) { + $data = get-content -path $VSCodeSettings -ErrorAction silentlycontinue | out-string | ConvertFrom-Json +} +else { + New-Item -ItemType directory $VSCodeUserSettings -force + $data = @{} +} + +write-host $data + +$data | Add-Member -force -Name 'terminal.integrated.defaultProfile.windows' -MemberType NoteProperty -Value "Cmder" + +if ($null -eq $data.'terminal.integrated.profiles.windows') { + write-host "Adding 'terminal.integrated.profiles.windows'..." + $data | Add-Member -force -Name 'terminal.integrated.profiles.windows' -MemberType NoteProperty -Value @{} +} + +write-host "Adding 'terminal.integrated.profiles.windows.Cmder' profile..." +$data.'terminal.integrated.profiles.windows'.'Cmder' = @{ + "name" = "Cmder"; + "path" = @( + "`${env:windir}/Sysnative/cmd.exe"; + "`${env:windir}/System32/cmd.exe"; + ); + "args" = @( + "/k"; + "`${env:USERPROFILE}/cmderdev/vendor/bin/vscode_init.cmd"); + "icon" = "terminal-cmd"; + "color" = "terminal.ansiGreen"; +}; + +$data | ConvertTo-Json -depth 100 | set-content $VSCodeSettings + + diff --git a/vendor/bin/add-windowsterminalprofiles.ps1 b/vendor/bin/add-windowsterminalprofiles.ps1 new file mode 100644 index 0000000..945a92a --- /dev/null +++ b/vendor/bin/add-windowsterminalprofiles.ps1 @@ -0,0 +1,74 @@ +# Windows Terminal +$windowsTerminalFolder = (dir "$env:userprofile/AppData/Local/Packages/Microsoft.WindowsTerminal_*").name +$windowsTerminalPath = "$env:userprofile/AppData/Local/Packages/$windowsTerminalFolder" +$windowsTerminalSettings = $windowsTerminalPath + '/localState/settings.json' +$windowsTerminalSettingsNew = $windowsTerminalPath + '/localState/settings-new.json' + +if (test-path "$env:userprofile/Documents/windows_terminal_settings.json.default") { + if (test-path "$windowsTerminalPath/LocalState/settings.json") { + del "$env:userprofile/Documents/windows_terminal_settings.json.default" + } else { + move-item -path $env:userprofile/Documents/windows_terminal_settings.json.default -destination $windowsTerminalPath/LocalState/settings.json + } +} + +if (test-path "$env:userprofile/Documents/windows_terminal_state.json.default") { + if (test-path "$windowsTerminalPath/LocalState/state.json") { + del "$env:userprofile/Documents/windows_terminal_state.json.default" + } else { + move-item -path $env:userprofile/Documents/windows_terminal_state.json.default -destination $windowsTerminalPath/LocalState/state.json + } +} + +if (test-path "$windowsTerminalPath/LocalState/state.json") { + $json = get-content $windowsTerminalSettings | ConvertFrom-Json + + $json.defaultProfile="{00000000-0000-0000-ba54-000000000132}" + + $cmderFound = $false + $cmderAsAdminFound = $false + + foreach ($profile in $json.profiles.list) { + if ($profile.Name -eq "Cmder") { + $cmderFound = $true + } + elseIf ($profile.Name -eq "Cmder as Admin") { + $cmderAsAdminFound = $true + } + } + + if (-not $cmderFound) { + write-host "Adding 'Cmder' to Windows Terminal..." + + $json.profiles.list += @{ + commandline="cmd.exe /k `"%USERPROFILE%/cmderdev/vendor/init.bat`""; + startingDirectory="%USERPROFILE%/cmderdev"; + icon="%USERPROFILE%/cmderdev/icons/cmder.ico"; + closeOnExit="graceful"; + guid="{00000000-0000-0000-ba54-000000000132}"; + hidden=$false; + name="Cmder" + } + } + + if (-not $cmderAsAdminFound) { + write-host "Adding 'Cmder as Admin' to Windows Terminal..." + + $json.profiles.list += @{ + commandline="cmd.exe /k `"%USERPROFILE%/cmderdev/vendor/init.bat`""; + startingDirectory="%USERPROFILE%/cmderdev"; + icon="%USERPROFILE%/cmderdev/icons/cmder_red.ico"; + closeOnExit="graceful"; + guid="{00000000-0000-0000-ba54-000000000133}"; + hidden=$false; + elevate=$true; + name="Cmder as Admin" + } + } + + $json | ConvertTo-Json -depth 100 | set-content $windowsTerminalSettings +} +else { + write-host "Cannot add profiles for Windows Terminal. The Windows Terminal settings file does not exist!" +} + diff --git a/vendor/bin/set-shortcut.ps1 b/vendor/bin/set-shortcut.ps1 new file mode 100644 index 0000000..7e0a8e9 --- /dev/null +++ b/vendor/bin/set-shortcut.ps1 @@ -0,0 +1,21 @@ +[CmdletBinding()] +param( + [Parameter()] + [string]$SourceExe, + [string]$Arguments, + [string]$DestinationPath, + [string]$WorkingDirectory, + [String]$IconLocation +) + +if ($IconLocation -eq '') { + $IconLocation = $SourceExe +} + +$WshShell = New-Object -comObject WScript.Shell +$Shortcut = $WshShell.CreateShortcut($destinationPath) +$Shortcut.TargetPath = $SourceExe +$Shortcut.Arguments = $Arguments +$shortcut.WorkingDirectory = $WorkingDirectory +$shortcut.IconLocation = $IconLocation +$Shortcut.Save()