added addl wrappers
This commit is contained in:
161
sf-web-logout.ps1
Normal file
161
sf-web-logout.ps1
Normal file
@@ -0,0 +1,161 @@
|
||||
#!/usr/bin/env pwsh
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Web logout wrapper for Salesforce CLI
|
||||
|
||||
.DESCRIPTION
|
||||
A user-friendly wrapper around 'sf org logout' that simplifies
|
||||
logging out from Salesforce orgs with better formatting
|
||||
and error handling.
|
||||
|
||||
.PARAMETER to
|
||||
Org alias or username to logout from
|
||||
|
||||
.PARAMETER al
|
||||
Logout from all authenticated orgs (sets --all)
|
||||
|
||||
.PARAMETER ve
|
||||
Enable verbose output showing logout details
|
||||
|
||||
.PARAMETER hp
|
||||
Show this help message
|
||||
|
||||
.EXAMPLE
|
||||
.\sf-web-logout.ps1 -to "DEMO"
|
||||
.\sf-web-logout.ps1 -al
|
||||
.\sf-web-logout.ps1 -to "NUSHUB-PROD" -ve
|
||||
|
||||
.NOTES
|
||||
This script automatically checks for Salesforce CLI installation and runs
|
||||
diagnostics if the CLI is not found.
|
||||
#>
|
||||
|
||||
param(
|
||||
[string]$to,
|
||||
[switch]$al,
|
||||
[switch]$ve,
|
||||
[switch]$hp
|
||||
)
|
||||
|
||||
# Show help if requested
|
||||
if ($hp) {
|
||||
Get-Help $MyInvocation.MyCommand.Path -Detailed
|
||||
exit 0
|
||||
}
|
||||
|
||||
# Function to check if Salesforce CLI is installed
|
||||
function Test-SalesforceCLI {
|
||||
try {
|
||||
$null = Get-Command sf -ErrorAction Stop
|
||||
return $true
|
||||
} catch {
|
||||
return $false
|
||||
}
|
||||
}
|
||||
|
||||
# Function to run sf-check diagnostics
|
||||
function Invoke-SalesforceCheck {
|
||||
Write-Host "❌ Salesforce CLI (sf) not found!" -ForegroundColor Red
|
||||
Write-Host ""
|
||||
Write-Host "Running environment check to help you get started..." -ForegroundColor Yellow
|
||||
Write-Host ""
|
||||
|
||||
$checkScript = if (Test-Path "sf-check.ps1") {
|
||||
".\sf-check.ps1"
|
||||
} elseif (Test-Path "sf-check") {
|
||||
"./sf-check"
|
||||
} else {
|
||||
$null
|
||||
}
|
||||
|
||||
if ($checkScript) {
|
||||
try {
|
||||
Invoke-Expression $checkScript
|
||||
} catch {
|
||||
Write-Host "Error running diagnostics: $($_.Exception.Message)" -ForegroundColor Red
|
||||
}
|
||||
} else {
|
||||
Write-Host "sf-check not found. Please install the Salesforce CLI from:" -ForegroundColor Red
|
||||
Write-Host "https://developer.salesforce.com/tools/sfdxcli" -ForegroundColor Red
|
||||
}
|
||||
}
|
||||
|
||||
# Validate that both target org and all aren't specified
|
||||
if ($to -and $al) {
|
||||
Write-Host "Error: Cannot specify both -to and -al parameters" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Silently check for Salesforce CLI
|
||||
if (-not (Test-SalesforceCLI)) {
|
||||
Invoke-SalesforceCheck
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Build the sf command
|
||||
$sfArgs = @("org", "logout")
|
||||
|
||||
# Add parameters based on input
|
||||
if ($to) {
|
||||
$sfArgs += "--target-org"
|
||||
$sfArgs += $to
|
||||
}
|
||||
|
||||
if ($al) {
|
||||
$sfArgs += "--all"
|
||||
}
|
||||
|
||||
# Display verbose information if requested
|
||||
if ($ve) {
|
||||
Write-Host "🚪 Starting Logout Process" -ForegroundColor Blue
|
||||
Write-Host "=========================" -ForegroundColor Blue
|
||||
|
||||
if ($to) {
|
||||
Write-Host "Target org: $to" -ForegroundColor Cyan
|
||||
}
|
||||
|
||||
if ($al) {
|
||||
Write-Host "Logout from: All authenticated orgs" -ForegroundColor Cyan
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
}
|
||||
|
||||
# Display the command being run
|
||||
Write-Host ">>> Running: sf $($sfArgs -join ' ')" -ForegroundColor Gray
|
||||
|
||||
# Execute the command
|
||||
try {
|
||||
$startTime = Get-Date
|
||||
& sf @sfArgs
|
||||
$exitCode = $LASTEXITCODE
|
||||
$endTime = Get-Date
|
||||
$duration = $endTime - $startTime
|
||||
|
||||
if ($ve) {
|
||||
Write-Host ""
|
||||
Write-Host "⏱️ Logout completed in $($duration.TotalSeconds) seconds" -ForegroundColor Green
|
||||
}
|
||||
|
||||
if ($exitCode -eq 0) {
|
||||
Write-Host ""
|
||||
Write-Host "✅ Logout completed successfully!" -ForegroundColor Green
|
||||
|
||||
if ($to) {
|
||||
Write-Host "🚪 Logged out from org: $to" -ForegroundColor Yellow
|
||||
} elseif ($al) {
|
||||
Write-Host "🚪 Logged out from all authenticated orgs" -ForegroundColor Yellow
|
||||
}
|
||||
} else {
|
||||
Write-Host ""
|
||||
Write-Host "❌ Logout failed with exit code: $exitCode" -ForegroundColor Red
|
||||
Write-Host "💡 Check the org alias/username and try again" -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
exit $exitCode
|
||||
|
||||
} catch {
|
||||
Write-Host "Error executing sf command: $($_.Exception.Message)" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
Reference in New Issue
Block a user