From: EdTheDev Date: Sun, 10 Mar 2024 14:49:28 +0000 (-0500) Subject: Protect against modules that are not always cloned X-Git-Url: https://us-delaporte.pagekite.me/gitweb/dotfiles.git/commitdiff_plain/5ee933871c09fadb372f11aaeebd09215e8e6ddd?hp=-c Protect against modules that are not always cloned --- 5ee933871c09fadb372f11aaeebd09215e8e6ddd diff --git a/files/Microsoft.PowerShell_profile.ps1 b/files/Microsoft.PowerShell_profile.ps1 index 2bbdf46..f741f1b 100644 --- a/files/Microsoft.PowerShell_profile.ps1 +++ b/files/Microsoft.PowerShell_profile.ps1 @@ -34,10 +34,23 @@ $env:psmodules = "$env:dotfiles\psmodules" Import-Module "$env:psmodules\dash.psm1" Import-Module $env:psmodules\file_management.psm1 Import-Module "$env:psmodules\fix_vpn.psm1" -Import-Module $env:psmodules\house_shopping.psm1 + + + +$maybe_mods = @( + "$env:src\travel-times\travel-times.psm1", + "$env:src\powershell-scripts\modules\AgileGitHubCLI.psm1" + ) +$maybe_mods | ForEach-Object { + if(Test-Path $_) { + Import-Module $_ + } else { + Write-Host "Not found: $_" + } +} + # Load local source modules -Import-Module $env:src\powershell-scripts\modules\AgileGitHubCLI.psm1 # Import-Module $env:src\powershell-scripts\modules\MarkdownGitHub.psm1 # Let's face it, I'm about to cd into my source directory diff --git a/psmodules/house_shopping.md b/psmodules/house_shopping.md deleted file mode 100644 index da0d848..0000000 --- a/psmodules/house_shopping.md +++ /dev/null @@ -1,39 +0,0 @@ - -## Use - - -Call `Add-Addresses` to copy records from `Addresses.csv` to `Address_Ddetails.csv`. - -Call `Add-AddressLocations` to fetch latitude and longitude for all addresses in `Address_Details.csv`. - -## Reference - -- [Azure Maps](https://learn.microsoft.com/en-us/powershell/module/az.maps/?view=azps-10.4.1&viewFallbackFrom=azps-10.0.0) -- https://learn.microsoft.com/en-us/azure/azure-maps/how-to-search-for-address - - -https://geekeefy.wordpress.com/2016/05/17/powershell-module-for-google-map/ - -## Setup - -Make sure that PowerShell 7 or higher is installed: - -```powershell -if($PSVersionTable.PSVersion.Major < 7) { - winget install --id Microsoft.Powershell --source winget -} - -Then inside PowerShell 7, install the Az module: - -```powershell -Install-Module -Name Az -Repository PSGallery -Force -``` - -### Subscription Key - - - -Set your subscription key: -```powershell -$env:AzMapsSubKey="" -``` \ No newline at end of file diff --git a/psmodules/house_shopping.psm1 b/psmodules/house_shopping.psm1 deleted file mode 100644 index 908e9be..0000000 --- a/psmodules/house_shopping.psm1 +++ /dev/null @@ -1,144 +0,0 @@ - -function Add-Addresses(){ - Param( - [string]$addressFile = "Addresses.csv", - [string]$outFile= "Address_Details.csv" - ) - Copy-Item $outFile "$outFile.backup" - $addressList = Get-Content $addressFile | ConvertFrom-Csv - $details = Get-Content $outFile| ConvertFrom-Csv - - $results = [System.Collections.ArrayList]@() - $known = [System.Collections.ArrayList]@() - - $details | ForEach-Object { - $idx = $results.Add($_) - $known.Add($_.Address) - } - $addressList | ForEach-Object { - if($known -NotContains $_.Address) - { - $idx = $results.Add($_) - $idx = Write-Host "Aadded " + $_.Address - } - } - $results | Format-Table - $answer = Read-Host -Prompt "Write updated file? y/N" - if($answer -Eq "y") { - $results | Export-Csv -NoTypeInformation -Path $outFile - Write-Host "Updated $outFile" - } -} - - -function Add-AddressLocations(){ - Param( - [string]$outFile= "Address_Details.csv" - ) - Copy-Item $outFile "$outFile.backup" - $details = Get-Content $outFile| ConvertFrom-Csv - - $results = [System.Collections.ArrayList]@() - - $details | ForEach-Object { - $updated = $_ - if($_.lat -Eq $null) - { - Write-Host "Looking up position of " $_.Address - $coords= Get-MapCoords -Address $_.Address - $coords | Format-List - $updated.lat = $coords.lat - $updated.lon = $coords.lon - $updated | Format-List - } - $idx = $results.Add($updated) - } - $results | Select-Object Address, lat, lon | Format-List - $answer = Read-Host -Prompt "Write updated file? y/N" - if($answer -Eq "y") { - $results | Export-Csv -NoTypeInformation -Path $outFile - Write-Host "Updated $outFile" - } -} - - -function Add-TravelTimes() { - Param( - [string]$outFile= "Address_Details.csv" - ) - $details = Get-Content $outFile| ConvertFrom-Csv - -} - -$fuzzyUrl = "https://atlas.microsoft.com/search/fuzzy/json?&api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=pizza" - -function Invoke-SubKeyCheck { - if($env:AzMapsSubKey -Eq $null) { - Write-Error "Please set env:AzMapsSubKey" - Exit - } -} - -function Get-MapAddress() { - param( - [string]$address - ) - Invoke-SubKeyCheck - $subKey = $env:AzMapsSubKey - $addyUrl = "https://atlas.microsoft.com/search/address/json?&subscription-key=$subKey&api-version=1.0&language=en-US&query=$address" - $result = Invoke-WebRequest $addyUrl - if($result.StatusCode -Eq 200){ - return $result.Content | ConvertFrom-Json - } - return $result.StatusDescription -} - -function Get-MapCoords() { - param( - [string]$address - ) - Invoke-SubKeyCheck - $subKey = $env:AzMapsSubKey - $result = Get-MapAddress -Address $address - return $result.results.entryPoints[0].position -} - -function Get-MapTravelPlan() { - param( - [string]$from_address, - [string]$to_address - ) - Invoke-SubKeyCheck - $subKey = $env:AzMapsSubKey - $pos1 = Get-MapCoords -Address $from_address - $lat1 = $pos1.lat - $lon1 = $pos1.lon - - $pos2 = Get-MapCoords -Address $to_address - $lat2 = $pos2.lat - $lon2 = $pos2.lon - - $query = "$lat1,$($lon1):$lat2,$lon2" - # Write-Host $query - $travelUrl = "https://atlas.microsoft.com/route/directions/json?subscription-key=$subKey&api-version=1.0&query=$query&travelMode=car&traffic=true&departAt=2025-03-29T08:00:20&computeTravelTimeFor=all" - $result = Invoke-WebRequest $travelUrl - if($result.StatusCode -Eq 200){ - $content = $result.Content | ConvertFrom-Json - if($content.formatVersion -Ne "0.0.12"){ - Write-Warning "BEWARE Format has updated! BEWARE" - } - return $content.routes - } - return $result.StatusDescription -} - - -function Get-MapTravelMinutes() { - param( - [string]$from_address, - [string]$to_address - ) - $routes = Get-MapTravelPlan -from_address $from_address -to_address $to_address - $seconds = $routes.summary.travelTimeInSeconds - return $seconds/60 -} \ No newline at end of file