param( [String]$COMPort, [switch]$Extras, [switch]$ResetAfterFlash, [String[]]$Libs ) Function Find-LibraryFile { [cmdletbinding()] param( [String]$Library, [String]$SearchPath = $(Get-Location) ) return (Get-ChildItem -Path $SearchPath -Recurse -Name "$Library.py").FullName } Function Write-AmpyFile { [cmdletbinding()] param( [String]$Filename, [String]$COMPort ) If ((Get-Command -Name ampy -ErrorAction SilentlyContinue) -eq $false) { Write-Error -Message "Couldn't locate ``ampy`` in environment paths - please run ``pip install adafruit-ampy``." -ErrorAction Stop } ampy -p $COMPort put $Filename } Function Reset-AmpyDevice { [cmdletbinding()] param( [String]$COMPort ) If ((Get-Command -Name ampy -ErrorAction SilentlyContinue) -eq $false) { Write-Error -Message "Couldn't locate ``ampy`` in environment paths - please run ``pip install adafruit-ampy``." -ErrorAction Stop } ampy -p $COMPort reset } $BaseFiles = ( 'boot', 'main', 'uPyConfig' ) $ExtraFiles = ( 'init_sample' ) $CfgFiles = ( 'wifi_cfg', 'webrepl_cfg' ) $BaseFiles | % { $Lib = Find-LibraryFile -Library $_ Write-AmpyFile -Filename "$Lib" -COMPort $COMPort } $CfgFiles | % { If (Get-ChildItem "$_.py" -ErrorAction SilentlyContinue) { Write-AmpyFile -Filename "$_.py" -COMPort $COMPort } } If ($Extras) { $ExtraFiles | % { $Lib = Find-LibraryFile -Library $_ Write-AmpyFile -Filename "$Lib" -COMPort $COMPort } } If ($Libs.Count -gt 0) { $Libs | % { $Lib = Find-LibraryFile -Library $_ Write-AmpyFile -Filename "$Lib" -COMPort $COMPort } } If ($ResetAfterFlash) { Reset-AmpyDevice -COMPort $COMPort }