From b3fcae23a051afda2ce0fae27985e5e432491f04 Mon Sep 17 00:00:00 2001
From: Tonia Sanzo <[EMAIL REDACTED]>
Date: Tue, 7 Nov 2023 11:20:17 -0500
Subject: [PATCH] Create Get-GitModules.ps1
---
external/Get-GitModules.ps1 | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
create mode 100644 external/Get-GitModules.ps1
diff --git a/external/Get-GitModules.ps1 b/external/Get-GitModules.ps1
new file mode 100644
index 00000000..c43f6375
--- /dev/null
+++ b/external/Get-GitModules.ps1
@@ -0,0 +1,36 @@
+<#
+ .SYNOPSIS
+ Downloads the Git modules specified in ../.gitmodules
+
+ .DESCRIPTION
+ Parses and downloads the Github repositories specified in the .gitmodules file
+
+ .EXAMPLE
+ PS> .\Get-GitModules.ps1
+ < Downloads and parses the repositories in the .gitmodules file. >
+#>
+
+#------- Variables -------------------------------------------------------------
+[String] $PathRegex = "path\s*=\s*(?<path>.*)"
+[String] $URLRegex = "url\s*=\s*(?<url>.*)"
+[String] $BranchRegex = "branch\s*=\s*(?<Branch>.*)"
+
+#------- Script ----------------------------------------------------------------
+foreach ($Line in Get-Content $PSScriptRoot\..\.gitmodules) {
+ if ($Line -match $PathRegex) {
+ $Match = Select-String -InputObject $Line -Pattern $PathRegex
+ $Path = $Match.Matches[0].Groups[1].Value
+ }
+ elseif ($Line -match $URLRegex) {
+ $Match = Select-String -InputObject $Line -Pattern $URLRegex
+ $URL = $Match.Matches[0].Groups[1].Value
+ }
+ elseif ($Line -match $BranchRegex) {
+ $Match = Select-String -InputObject $Line -Pattern $BranchRegex
+ $Branch = $Match.Matches[0].Groups[1].Value
+
+ Write-Host "git clone $URL $Path -b $Branch --recursive" `
+ -ForegroundColor Blue
+ git clone $URL $PSScriptRoot/../$Path -b $Branch --recursive
+ }
+}