Ed_
74689f6c6a
Decided to try using gencpp for the first time with UE (just codegen, not parsing). I used it to generate the AttributeSet
74 lines
2.1 KiB
PowerShell
74 lines
2.1 KiB
PowerShell
# This is meant to be used with build.ps1, and is not a standalone script.
|
|
|
|
function check-FileForChanges
|
|
{
|
|
param(
|
|
[Parameter(Mandatory=$true)]
|
|
[string]$path_file
|
|
)
|
|
|
|
if (-not (Test-Path $path_file -PathType Leaf)) {
|
|
Write-Error "The provided path is not a valid file: $path_file"
|
|
return $false
|
|
}
|
|
$file_name = Split-Path $path_file -Leaf
|
|
$path_csv = Join-Path $path_build ($file_name + "_file_hash.csv")
|
|
|
|
$csv_file_hash = $null
|
|
if (Test-Path $path_csv) {
|
|
$csv_file_hash = Import-Csv $path_csv | Select-Object -ExpandProperty value
|
|
}
|
|
|
|
$current_hash_info = Get-FileHash -Path $path_file -Algorithm MD5
|
|
$current_file_hash = $current_hash_info.Hash
|
|
|
|
# Save the current hash to the CSV
|
|
[PSCustomObject]@{
|
|
name = $path_file
|
|
value = $current_file_hash
|
|
} | Export-Csv $path_csv -NoTypeInformation
|
|
|
|
if ($csv_file_hash -and $csv_file_hash -eq $current_file_hash) {
|
|
return $false
|
|
} else {
|
|
return $true
|
|
}
|
|
}
|
|
|
|
# Check to see if the module has changed files since the last build
|
|
function check-ModuleForChanges
|
|
{
|
|
param( [string]$path_module, [array]$excludes )
|
|
|
|
$module_name = split-path $path_module -leaf
|
|
$path_csv = Join-Path $path_build ($module_name + "_module_hashes.csv")
|
|
|
|
$csv_file_hashes = $null
|
|
if ( test-path $path_csv ) {
|
|
$csv_file_hashes = @{}
|
|
import-csv $path_csv | foreach-object {
|
|
$csv_file_hashes[ $_.name ] = $_.value
|
|
}
|
|
}
|
|
|
|
$file_hashes = @{}
|
|
get-childitem -path $path_module -recurse -file -Exclude $excludes | foreach-object {
|
|
$id = $_.fullname
|
|
$hash_info = get-filehash -path $id -Algorithm MD5
|
|
$file_hashes[ $id ] = $hash_info.Hash
|
|
}
|
|
|
|
$file_hashes.GetEnumerator() | foreach-object { [PSCustomObject]$_ } |
|
|
export-csv $path_csv -NoTypeInformation
|
|
|
|
if ( -not $csv_file_hashes ) { return $true }
|
|
if ( $csv_file_hashes.Count -ne $file_hashes.Count ) { return $true }
|
|
|
|
foreach ( $key in $csv_file_hashes.Keys ) {
|
|
if ( $csv_file_hashes[ $key ] -ne $file_hashes[ $key ] ) {
|
|
return $true
|
|
}
|
|
}
|
|
return $false
|
|
}
|