Shell-dependent system utilities extracted from Apero.

Why Trebejo?

Apero was split into two packages:

PackageContents
apero (≥ 3.0.0)Pure stdlib wrappers — Env, Conf, Retry, Crypto, Cache, File trees/paths, OS type/hostname/distro/container/WSL, Proc which/command_exists?
trebejoShell-dependent operations — Docker, Git, SSH, Kubernetes, Compress, Network, OS info (arch, kernel, cpu, memory, root), Proc listing/signalling, File watch, Image, Package install

Modules

ModuleDescription
Trebejo.DockerDocker / Podman container lifecycle
Trebejo.GitGit repository operations (thin facade over Trebejo.Git.Local)
Trebejo.Git.LocalLow-level git CLI wrappers (commit, branch, log, churn, …)
Trebejo.SSHSSH connections and remote command execution
Trebejo.Kuberneteskubectl wrappers for cluster resources
Trebejo.CompressArchive creation and extraction (zip, tar, gzip)
Trebejo.NetworkNetwork interface and connectivity probes
Trebejo.OSOS metadata: arch, kernel, CPU, memory, root — shell-based. Pure OS detection (type, hostname, distro, WSL, container) lives in Apero.OS
Trebejo.ProcProcess listing, signalling, lsof, fuser, log access
Trebejo.PackagesPackage installation and querying (apt, brew, pacman, …)
Trebejo.ImageContainer / VM image inspection helpers
Trebejo.FileFile system watching via Arrea.WorkerSupervisor
Trebejo.File.IODisk-usage reporting
Trebejo.SafeCommandValidated wrapper around Arrea.Command.execute/2 — single entry point for all shell execution
Trebejo.Utilrun_cmd/3, run_cmd_legacy/3, run_ok/3 — all routed through SafeCommand.execute/3

Shell-based functions go through Arrea.Command via Trebejo.SafeCommand for consistent validation and POSIX-quoted arguments. Pure detection (OS type, hostname, distro) lives in Apero.OS — call it directly.

Installation

Add trebejo to your mix.exs:

def deps do
  [
    {:trebejo, "~> 2.0"}
  ]
end

Documentation

Full docs at https://hexdocs.pm/trebejo.

Generated with ExDoc.