12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- param (
- [Parameter(Position=0, Mandatory=$false)]
- [ValidateSet("t", "u", "d")]
- [string]$option
- )
- # Get the current directory
- $currentDir = Get-Location
- # Define target directories
- $targetDir = "components\wifi-manager\webapp"
- $distDir = "$targetDir\dist"
- # Get list of files from the 'dist' directory
- $fsFiles = Get-ChildItem -Recurse $distDir -File | ForEach-Object {
- $_.FullName.Substring($currentDir.Path.Length + 1).Replace("\", "/")
- }
- # Define additional files to include
- $additionalFiles = @("webpack.c", "webpack.h", "webapp.cmake")
- # Check if additional files exist in $targetDir and format them
- $additionalFilesFormatted = @()
- Get-ChildItem $targetDir -File | ForEach-Object {
- if ($additionalFiles -contains $_.Name) {
- $formatted = $_.FullName.Substring($currentDir.Path.Length + 1).Replace("\", "/")
- $additionalFilesFormatted += $formatted
- Write-Host "Found $formatted"
- }
- }
- # Get list of files from the Git index
- $indexFiles = git ls-files -s $distDir | ForEach-Object {
- ($_ -split "\s+")[3]
- }
- # Combine and remove duplicates
- $allFiles = $fsFiles + $additionalFilesFormatted + $indexFiles | Sort-Object -Unique
- # ... (previous code remains unchanged)
- # Apply the git command based on the option
- $allFiles | ForEach-Object {
- $relativePath = $_
- $isInIndex = $indexFiles -contains $relativePath
- if ($null -eq $option) {
- $gitStatus = & git status --porcelain -- $relativePath
- if ($gitStatus) {
- $status = ($gitStatus -split "\s")[0]
- Write-Host "$relativePath has Git status: $status"
- } else {
- Write-Host "$relativePath is not tracked"
- }
- }
- elseif ($isInIndex) {
- if ($option -eq "d") {
- $resetResult = & git reset -- $relativePath 2>&1
- if ($resetResult -match 'error:') {
- Write-Host "Error resetting ${relativePath}: $resetResult"
- continue
- }
- $checkoutResult = & git checkout -- $relativePath 2>&1
- if ($checkoutResult -match 'error:') {
- Write-Host "Error checking out ${relativePath}: $checkoutResult"
- continue
- }
- Write-Host "Discarded changes in $relativePath"
- }
- # ... (rest of the code remains unchanged)
- }
- # else {
- # # if ($option -eq "d") {
- # # Remove-Item -Path $relativePath -Force
- # # Write-Host "Removed untracked file $relativePath"
- # # } else {
- # # Write-Host "File $relativePath is not tracked."
- # # }
-
- # }
- else {
- if ($option -eq "t") {
- git add $relativePath
- git update-index --no-skip-worktree $relativePath
- Write-Host "Started tracking changes in $relativePath"
- } else {
- Write-Host "File $relativePath is not tracked."
- }
- }
- }
|