build.ps1 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. function Get-LatestDirectory {
  2. param (
  3. $Path
  4. )
  5. Get-ChildItem -Path $Path | Where-Object {$_.PSIsContainer} | Sort-Object LastWriteTime -Descending | Select-Object -First 1
  6. }
  7. $build_commands = @(
  8. [PSCustomObject]@{
  9. Name = "Official Dev \ Unleashed";
  10. FbtSwitch = "od";
  11. FirmwarePath = "flipperzero-firmware_official_dev";
  12. ArtifactName = "totp_official-dev_unleashed_fw.fap"
  13. }
  14. [PSCustomObject]@{
  15. Name = "Official Stable";
  16. FbtSwitch = "os";
  17. FirmwarePath = "flipperzero-firmware_official_stable";
  18. ArtifactName = "totp_official-stable_fw.fap"
  19. }
  20. )
  21. Push-Location $PSScriptRoot
  22. if (!(Test-Path -PathType Container "build")) {
  23. New-Item -ItemType Directory -Path "build"
  24. } else {
  25. Remove-Item "build\*" -Recurse -Force
  26. }
  27. foreach ($build_command in $build_commands) {
  28. Write-Host "Building $($build_command.Name)"
  29. $build_path = Join-Path -Path $build_command.FirmwarePath -ChildPath "build"
  30. if (Test-Path -PathType Container $build_path) {
  31. Remove-Item "$build_path\*" -Recurse -Force
  32. }
  33. ./fbt $build_command.FbtSwitch COMPACT=1 DEBUG=0 VERBOSE=0 fap_totp
  34. $latest_dir = Get-LatestDirectory -Path $build_path
  35. $build_output_artifact = "build\$($build_command.ArtifactName)"
  36. Copy-Item "$build_path\$latest_dir\.extapps\totp.fap" -Destination $build_output_artifact
  37. Write-Host "Artifacts for $($build_command.Name) stored at $build_output_artifact"
  38. }
  39. Pop-Location