BluRun
BluRun é um wrapper leve e multiplataforma em Go para execução de comandos do sistema, projetado para simplificar o uso de exec com captura de saída em tempo real, callbacks e controle seguro de concorrência.
Ideal para aplicações CLI, ferramentas de automação, instaladores, utilitários desktop e sistemas que precisam acompanhar a execução de comandos enquanto eles ainda estão rodando.
✨ Recursos
-
🌍 Multiplataforma
Abstrai automaticamente a execução entre:
- PowerShell (Windows)
- SH (Linux e macOS)
-
📡 Streaming em tempo real
Receba cada linha de stdout e stderr via callbacks enquanto o processo executa.
-
🧵 Thread-safe
Leitura concorrente segura das streams e controle confiável do processo.
-
🏠 Ambiente herdado
- Executa comandos a partir do diretório Home do usuário
- Herda variáveis de ambiente do sistema
- Permite adicionar variáveis customizadas
-
🔁 Código de saída acessível
Obtenha o exit code após a finalização do processo.
📦 Instalação
go get github.com/bluiceoficial/blurun
🚀 Exemplo de uso
package main
import (
"fmt"
"os"
"github.com/bluiceoficial/blurun"
)
func main() {
sRun := blurun.New("ls -a")
// Definir diretório de execução (opcional)
pathHome, _ := os.UserHomeDir()
sRun.SetDir(pathHome)
// Variáveis de ambiente extras (opcional)
sRun.AddEnv("EXEMPLO", "Valor")
// Callback para stderr
sRun.OnStderr(func(line string) {
fmt.Printf("[STDERR]: %s\n", line)
})
// Callback para stdout
sRun.OnStdout(func(line string) {
fmt.Printf("[STDOUT]: %s\n", line)
})
// Executa o comando
if err := sRun.Run(); err != nil {
fmt.Printf("Erro na execução: %v\n", err)
}
fmt.Printf("Exit Code: %d\n", sRun.ExitCode())
}
⚙️ Requisitos
- Go 1.26.5+
- PowerShell (apenas no Windows)
🖥️ Sistemas Operacionais
- ✔️ Linux
- ✔️ Windows
- ✔️ macOS (Darwin)
👤 Autor
Murilo Gomes Julio
🔗 https://www.bluice.com.br
📺 https://youtube.com/@bluiceoficial
License
Copyright (c) 2026 Murilo Gomes Julio
Licensed under the MIT license.
All contributions to the BluRun are subject to this license.