PSAirTable.psm1
#Requires -Version 5 Set-StrictMode -Version Latest $WorkingDir = $MyInvocation.MyCommand.Path | Split-Path -Parent $EndPointUri = 'https://api.airtable.com/v0' $configFileParentFolder = if ($PSVersionTable.PSVersion -lt [Version]"6.0" -or $IsWindows) { $env:APPDATA } elseif ($IsMacOS) { "$HOME/Library/Application Support" } elseif ($IsLinux) { "$HOME/.config" } $configFileParentFolder = Join-Path -Path $configFileParentFolder -ChildPath 'PSAirTable' $script:configFilePath = Join-Path -Path $configFileParentFolder -ChildPath "configuration.json" if (-not (Test-Path $script:configFilePath)) { $null = New-Item -ItemType File -Path $script:configFilePath -Force Copy-Item -Path (Join-Path -Path $PSScriptRoot -ChildPath 'configuration.json') -Destination $script:configFilePath } # Get public and private function definition files. $Public = @(Get-ChildItem -Path $PSScriptRoot\Public\*.ps1 -ErrorAction SilentlyContinue) $Private = @(Get-ChildItem -Path $PSScriptRoot\Private\*.ps1 -ErrorAction SilentlyContinue) # Dot source the files. foreach ($import in @($Public + $Private)) { try { Write-Verbose "Importing $($import.FullName)" . $import.FullName } catch { Write-Error "Failed to import function $($import.FullName): $_" } } foreach ($file in $Public) { Export-ModuleMember -Function $file.BaseName } |