|
|
|
@@ -410,8 +410,12 @@ Function Invoke-GiteaFileDownload {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
process {
|
|
|
|
process {
|
|
|
|
Write-Verbose "Type: $type"
|
|
|
|
# If type is not provided, check for any hints for cases such as LFS where a type can be inferred and special handling is needed
|
|
|
|
|
|
|
|
If($downloadURL -match "/api/v1/repos/[^/]+/[^/]+/media/") {
|
|
|
|
|
|
|
|
$type = "lfs"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Write-Verbose "Type: $type"
|
|
|
|
# Handle the type parameter
|
|
|
|
# Handle the type parameter
|
|
|
|
|
|
|
|
|
|
|
|
# Skip directories and provide a verbose message
|
|
|
|
# Skip directories and provide a verbose message
|
|
|
|
@@ -447,10 +451,18 @@ Function Invoke-GiteaFileDownload {
|
|
|
|
# Separate the URL into its components: Gitea URL, Repo Owner, Repo Name, branch, file path, and file name
|
|
|
|
# Separate the URL into its components: Gitea URL, Repo Owner, Repo Name, branch, file path, and file name
|
|
|
|
$uri = New-Object System.Uri($downloadURL)
|
|
|
|
$uri = New-Object System.Uri($downloadURL)
|
|
|
|
$pathSegments = $uri.AbsolutePath.Trim('/').Split('/')
|
|
|
|
$pathSegments = $uri.AbsolutePath.Trim('/').Split('/')
|
|
|
|
# Everything after the branch + 1 segment is considered the file path with the last segment being the file name
|
|
|
|
If($type -eq "lfs") {
|
|
|
|
$branchIndex = [Array]::IndexOf($pathSegments, "branch") + 2
|
|
|
|
# Everything after the media segment is considered the file path with the last segment being the file name
|
|
|
|
$DownloadFilePath = $pathSegments[$branchIndex..($pathSegments.Length - 2)] -join '/'
|
|
|
|
$branchIndex = [Array]::IndexOf($pathSegments, "media") + 1
|
|
|
|
$DownloadFileName = $pathSegments[-1]
|
|
|
|
$DownloadFilePath = $pathSegments[$branchIndex..($pathSegments.Length - 2)] -join '/'
|
|
|
|
|
|
|
|
$DownloadFileName = $pathSegments[-1]
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Else {
|
|
|
|
|
|
|
|
# Everything after the branch + 1 segment is considered the file path with the last segment being the file name
|
|
|
|
|
|
|
|
$branchIndex = [Array]::IndexOf($pathSegments, "branch") + 2
|
|
|
|
|
|
|
|
$DownloadFilePath = $pathSegments[$branchIndex..($pathSegments.Length - 2)] -join '/'
|
|
|
|
|
|
|
|
$DownloadFileName = $pathSegments[-1]
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if ($PreserveRelativePath -and $outputPath) {
|
|
|
|
if ($PreserveRelativePath -and $outputPath) {
|
|
|
|
# If PreserveRelativePath is used, set up the directory structure
|
|
|
|
# If PreserveRelativePath is used, set up the directory structure
|
|
|
|
|