Public/Update_PDAConfig.ps1
Function Update-PDAConfig { [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'Low')] param( [parameter(ValueFromPipelineByPropertyName, HelpMessage = "Atualiza o nome do projeto")] [string] $Name, [parameter(ValueFromPipelineByPropertyName, HelpMessage = "Atualiza a lista de arquivos a serem inclusos")] [Array] $Files, [parameter(ValueFromPipelineByPropertyName, HelpMessage = "Atualiza a lista ed arquivos a serem excluídos da build")] [Array] $Exclude, [parameter(ValueFromPipelineByPropertyName, HelpMessage = "Adiciona um novo ambiente")] [PDAEnvironmentConfig] $Environment, [parameter(ValueFromPipelineByPropertyName, HelpMessage = "Define se as informações devem ser inseridas de forma complementar ou substituir completamente os dados existetes.")] [Switch] $Append, [parameter(ValueFromPipelineByPropertyName, HelpMessage = "Adiciona uma nova configuração de ambiente de forma interativa.")] [Switch] $NewEnv ) Begin { $pda_path = get_pda_file $PWD if (-not $PSBoundParameters.ContainsKey('Verbose')) { $VerbosePreference = $PSCmdlet.SessionState.PSVariable.GetValue('VerbosePreference') } if (-not $PSBoundParameters.ContainsKey('Confirm')) { $ConfirmPreference = $PSCmdlet.SessionState.PSVariable.GetValue('ConfirmPreference') } if (-not $PSBoundParameters.ContainsKey('WhatIf')) { $WhatIfPreference = $PSCmdlet.SessionState.PSVariable.GetValue('WhatIfPreference') } } Process { if (!$pda_path) { Write-Output 'Arquivo de configuracao PDA nao encontrado.' return } $data = get_project_data pda_path if ($Name) { $data.name = $Name } if ($Files) { if ($Append) { $data.files += $Files } else { $data.files = $Files } } if ($Exclude) { if ($Append) { $data.exclude += $Exclude } else { $data.exclude = $Exclude } } if ($Environment) { if ($Append) { $data.env += $Environment } else { $data.env = @($Environment) } } if($NewEnv){ $env = @() $exitData = '.' while ($exitData -ne '') { $client = @{} $client["env"] = Read-Host 'Informe o nome da configuracao de ambiente (Exemplo: dev,prd,hml,teste,etc.)' $client["path"] = Read-Host 'Informe o caminho para publicao' $client["type"] = $type $useIIS = Confirm-Choice -PromptMessage 'Utiliza site no IIS? ' if ($useIIS) { $client["iisSite"] = Read-Host "Informe o site do IIS" } $useScheduleTask = Confirm-Choice -PromptMessage 'Utiliza tarefa agendada do windows? ' if ($useScheduleTask) { $client["scheduledTask"] = Read-Host "Informe o nome da tarefa" } $useWS = Confirm-Choice -PromptMessage 'Utiliza servico do windows? ' if ($useWS) { $client["winsowsService"] = = Read-Host "Informe o nome do servico: " } $env += $client $addNew = Confirm-Choice -PromptMessage 'Deseja adicionar outro ambiente?' if (!$addNew) { $exitData = '' } } $data.env += $env } New-Item -Type 'File' -Path $(Split-Path -Path $pda_path.Path -Parent) -Name '.pda' -Value $($data | ConvertTo-Json) -Force:$true -Confirm:$ConfirmPreference -WhatIf:$WhatIfPreference -Verbose:$VerbosePreference | Out-Null } } |