forked from cinco/tmuxido
✨ feat: verificar dependências fzf e tmux ao iniciar
Adiciona módulo `deps` que, antes de qualquer operação, verifica se fzf e tmux estão instalados no sistema. Caso faltem, detecta o gerenciador de pacotes da distro (apt, pacman, dnf, yum, zypper, emerge, xbps, apk), informa ao usuário e oferece instalar com o comando adequado. - `src/deps.rs`: Dep, PackageManager, BinaryChecker (trait injetável), check_missing(), detect_package_manager(), ensure_dependencies() - `src/main.rs`: chama ensure_dependencies() antes do fluxo principal - `tests/deps.rs`: 11 testes de integração com SystemBinaryChecker real - `tests/docker/`: Dockerfile multi-stage + suite de 15 testes em container Ubuntu 24.04 simulando novo usuário (sem fzf/tmux) - `.dockerignore`: exclui target/, .git/, .claude/ do contexto Docker
This commit is contained in:
@@ -4,6 +4,7 @@ use std::io::Write;
|
||||
use std::path::PathBuf;
|
||||
use std::process::{Command, Stdio};
|
||||
use tmuxido::config::Config;
|
||||
use tmuxido::deps::ensure_dependencies;
|
||||
use tmuxido::{get_projects, launch_tmux_session, show_cache_status};
|
||||
|
||||
#[derive(Parser, Debug)]
|
||||
@@ -28,6 +29,9 @@ struct Args {
|
||||
fn main() -> Result<()> {
|
||||
let args = Args::parse();
|
||||
|
||||
// Check that fzf and tmux are installed; offer to install if missing
|
||||
ensure_dependencies()?;
|
||||
|
||||
// Ensure config exists
|
||||
Config::ensure_config_exists()?;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user