File tree Expand file tree Collapse file tree 1 file changed +47
-0
lines changed Expand file tree Collapse file tree 1 file changed +47
-0
lines changed Original file line number Diff line number Diff line change
1
+ <#
2
+ . PARAMETER FromSha
3
+ The SHA of the commit to start the diff from. This is typically the SHA of the main branch.
4
+ The default value is 'origin/main'.
5
+
6
+ . PARAMETER ToSha
7
+ The SHA of the commit to end the diff at. This is typically the SHA of the current commit.
8
+ If not provided, the script will use the current commit SHA.
9
+
10
+ . EXAMPLE
11
+ Get-Changed-Components.ps1 -FromSha 'origin/main' -ToSha $(git rev-parse HEAD)
12
+
13
+ Get-Changed-Components.ps1 -t $(git rev-parse HEAD)
14
+
15
+ Gets the components that have been changed in a specific patch range, defined by -FromSha and -ToSha parameters.
16
+
17
+ . NOTES
18
+ Author: Arlo Godfrey
19
+ Date: 2/19/2024
20
+ #>
21
+ Param (
22
+ [Alias (" f" )]
23
+ [string ]$FromSha = ' origin/main' ,
24
+
25
+ [Alias (" t" )]
26
+ [string ]$ToSha
27
+ )
28
+
29
+ if (-not $ToSha ) {
30
+ $ToSha = $ (git rev- parse HEAD)
31
+ }
32
+
33
+ git fetch origin main
34
+
35
+ $changedComponentFiles = Invoke-Expression " git diff --name-only $ ( $FromSha ) ...$ ( $ToSha ) -- components/"
36
+ $otherChanges = Invoke-Expression " git diff --name-only $ ( $FromSha ) ...$ ( $ToSha ) | Select-String -NotMatch '^components/'"
37
+
38
+ if (-not $otherChanges ) {
39
+ $names = $changedComponentFiles | ForEach-Object { ($_ -replace ' ^components/' , ' ' ) -replace ' /.*$' , ' ' }
40
+ $uniqueNames = $names | Sort-Object - Unique
41
+ $quotedNames = $uniqueNames | ForEach-Object { " '$_ '" }
42
+ $changedComponentsList = $quotedNames -join ' ,'
43
+ return $changedComponentsList
44
+ }
45
+ else {
46
+ return ' all' ;
47
+ }
You can’t perform that action at this time.
0 commit comments