TxdDockerUtils.psm1

function Add-DockerWebsite(){
      invoke-expression "Add-DockerWebsite.sh"
}

function Move-DockerProject(){
      Param (
          $path
      )
      invoke-expression "Move-DockerProject.sh $path"
}

function Update-DockerWebsiteList(){
      invoke-expression "update_site_list.sh"
}
function Update-DockerHostFile(){
      invoke-expression "update_hosts_file.sh"
}

$moveproject_block = {
      param($commandName,$parameterName, $wordToComplete)
      $dockerEnv = Get-DockerEnv
      $subfolder = ""
      $matchingWord = $wordToComplete
      if($wordToComplete.Length -eq 0){
            $subfolder = ""
      }else{
            if($wordToComplete -match '(.*)\/(.*)'){
                  
                  $subfolder = $Matches.1
                  $matchingWord = $Matches.2
            }
      }
      
      $fullpath = (join-path $dockerEnv.WEBSITE_INTERNAL_MIGRATION_PATH $subfolder)
      
      $list = Get-ChildItem -directory $fullpath | ForEach-Object {$_.Name}
      if($matchingWord.Length -gt 0 ){
            $list = $list | Select-String -Pattern $matchingWord
      }
      $list | Sort-Object | ForEach-Object {
            if($subfolder.Length -eq 0){
                  $fullParam = (Join-path $_ "/")  -replace "\\", "/"
            }else{
                  $fullParam = (Join-path  $subfolder $_ "/")  -replace "\\", "/"
            }
            New-Object -Type System.Management.Automation.CompletionResult -ArgumentList $fullParam,
              $_,
              "ParameterValue",
              $fullParam
        }
}

Register-ArgumentCompleter -CommandName Move-DockerProject -ParameterName "path" -ScriptBlock $moveproject_block
Export-ModuleMember -Function Add-DockerWebsite, Update-DockerWebsiteList, Update-DockerHostFile, Move-DockerProject -Alias *