blurun

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 21, 2026 License: MIT Imports: 8 Imported by: 0

README

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.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNonZeroExit = errors.New("process exited with non-zero status")

Functions

This section is empty.

Types

type Executor

type Executor struct {
	// contains filtered or unexported fields
}

func New

func New(command string) *Executor

func (*Executor) AddEnv

func (e *Executor) AddEnv(key, value string)

func (*Executor) ExitCode

func (e *Executor) ExitCode() int

func (*Executor) OnStderr

func (e *Executor) OnStderr(fn func(string))

func (*Executor) OnStdout

func (e *Executor) OnStdout(fn func(string))

func (*Executor) Run

func (e *Executor) Run() error

func (*Executor) SetDir

func (e *Executor) SetDir(path string)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL