-
Notifications
You must be signed in to change notification settings - Fork 39
Expand file tree
/
Copy pathrun_build_runner.ps1
More file actions
46 lines (40 loc) · 1.69 KB
/
run_build_runner.ps1
File metadata and controls
46 lines (40 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# Main project directory
$mainProjectDir = Get-Location
# Function to run build_runner commands
function Invoke-BuildRunner {
param (
[string]$dir,
[string]$name
)
Write-Host "Processing $name at $dir" -ForegroundColor Cyan
Set-Location $dir
Write-Host "Running 'flutter pub get' for $name" -ForegroundColor Green
flutter pub get
Write-Host "Running 'dart run build_runner clean' for $name" -ForegroundColor Green
dart run build_runner clean
Write-Host "Running 'dart run build_runner build --delete-conflicting-outputs' for $name" -ForegroundColor Green
dart run build_runner build --delete-conflicting-outputs
}
# Extract submodule paths from .gitmodules
# Use a more specific regex '\.path$' to ensure we only get keys ending in .path
$submodulePaths = git config --file .gitmodules --name-only --get-regexp '\.path$' | ForEach-Object {
git config --file .gitmodules --get $_
} | Where-Object { $_ -notmatch "http" }
# Run build_runner for each submodule
if ($submodulePaths) {
foreach ($submoduleDirName in $submodulePaths) {
$submodulePath = Join-Path -Path $mainProjectDir -ChildPath $submoduleDirName
if (Test-Path $submodulePath) {
Invoke-BuildRunner $submodulePath "submodule $submoduleDirName"
}
else {
Write-Host "Submodule path $submodulePath not found, skipping." -ForegroundColor Yellow
}
}
}
# Clean and then run build_runner for the main project
Set-Location $mainProjectDir
Write-Host "Running 'flutter clean' for the main project before build" -ForegroundColor Yellow
flutter clean
# Run build_runner for the main project
Invoke-BuildRunner $mainProjectDir "main project"