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)

nextjs tutorial video

Youtube Tutorial Series 📺

So you built a Next.js app, but you need a clear view of the entire operation flow to be able to identify performance bottlenecks before you launch. But how do you get started? Get the essentials on tracing for Next.js from @nikolovlazar in this video series 👀

Watch the Youtube series

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay