DEV Community

Tornando nossas mensagens mais inclusivas

Seguindo nosso post anterior sobre como fazer o terminal falar, vamos melhorar nosso código para evitar a repetição de sempre colocar um Write-Host e o narrador com o mesmo texto.

Para resolver isso, vamos criar uma pequena função.
Nela vamos receber o texto da mensagem, escrever ela na tela e utilizar o narrador para falar.

Isso em código, fica assim:

# Cria a funcao para retornos acessiveis
function Mensagem-Acessivel {
param (
$texto
)
# Configurando o Narrador
Add-Type -AssemblyName System.speech # Adiciona biblioteca
$narrador = New-Object System.Speech.Synthesis.SpeechSynthesizer # Cria narrador
# Retorna as mensagens
Write-Host "$texto"
$narrador.Speak("$texto")
}

Para exemplificar o uso pratico disso, vamos aplicar ao MyGIT a versão atualizada dos retornos, ficando assim:

# Configuracoes
$urlDownload = "https://github.com/IGDEXE/MLSA-Powershell/archive/main.zip"
$pastaMyGIT = "C:\MyGIT"
$arquivoDownload = "$env:LOCALAPPDATA/GIT.zip"
# Funcao para retornos acessiveis
function Mensagem-Acessivel {
param (
$texto
)
# Configurando o Narrador
Add-Type -AssemblyName System.speech # Adiciona biblioteca
$narrador = New-Object System.Speech.Synthesis.SpeechSynthesizer # Cria narrador
# Retorna as mensagens
Write-Host "$texto"
$narrador.Speak("$texto")
}
# Funcao para criar pastas
function Validar-Pasta {
param (
# Aqui definimos qual a posicao e se é obrigatorio ou nao o parametro
# O contador de posicoes comeca em 0, é importante lembrar disso
[parameter(position=0,Mandatory=$True)]
$caminhoPasta
)
# Validamos se o caminho existe, salvando a resposta em uma variavel
$pastaValidacao = Test-Path -Path "$caminhoPasta"
# Se ela já existe, exibimos uma mensagem de erro
if ($pastaValidacao) {
# Recebendo o nome da pasta com base no caminho
$infoPasta = Get-ItemProperty $caminhoPasta
$nomePasta = $infoPasta.Name
# Informamos que a pasta já existe
Mensagem-Acessivel "Já existe o diretorio: $nomePasta"
}
# Se a pasta existe, executamos o bloco de codigo
else {
# Executar o comando de criação de pasta
$esconderRetorno = New-Item -Path "$caminhoPasta" -ItemType "Directory" # Vamos jogar isso numa variavel para nao aparecer o retorno padrao na tela
# Recebendo o nome da pasta com base no caminho
$infoPasta = Get-ItemProperty $caminhoPasta
$nomePasta = $infoPasta.Name
# Mostrar mensagem de confirmação na tela
Mensagem-Acessivel "Criado diretorio: $nomePasta"
}
}
# Para limpar a tela
Clear-Host
try {
# Cria a pasta na raiz do sistema
Validar-Pasta $pastaMyGIT
# Faz o download do arquivo
Mensagem-Acessivel "Fazendo o download"
Invoke-WebRequest -Uri "$urlDownload" -OutFile "$arquivoDownload"
# Descompacta para a pasta que criamos
Mensagem-Acessivel "Descompactando.."
Expand-Archive -Path "$arquivoDownload" -DestinationPath "$pastaMyGIT" -Force
# Limpa a instalacao
Mensagem-Acessivel "Otimizando armazenamento.."
Remove-Item -Path "$arquivoDownload" -Force
# Conclui o processo
Mensagem-Acessivel "Configuração concluida"
Mensagem-Acessivel "Disponivel em: $pastaMyGIT"
}
catch {
$ErrorMessage = $_.Exception.Message # Recebe o erro
Mensagem-Acessivel "Ocorreu um problema" # Mostra a mensagem
Mensagem-Acessivel "Erro: $ErrorMessage"
}

Pronto, agora podemos deixar nosso script organizado e com os recursos de fala.

Top comments (0)

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

👋 Kindness is contagious

If you found this post useful, please drop a ❤️ or leave a kind comment!

Okay