for-all-projects 0.1.8

A tool to run cargo commands for all projects in a directory, recursively.
use clap::CommandFactory;
use clap_complete::{generate_to, shells::Bash};
use std::fs::create_dir_all;
use std::io::Error;
use std::path::PathBuf;

include!("src/cli.rs");

fn main() -> Result<(), Error> {
    if !cfg!(target_os = "linux") {
        return Ok(());
    }

    let Some(home) = std::env::var_os("HOME") else {
        return Ok(());
    };
    let outdir = PathBuf::from(home).join(".local/share/bash-completion/completions");
    let bin_name = "for-all-projects";

    create_dir_all(&outdir)?;

    let mut cmd = Cli::command();
    generate_to(Bash, &mut cmd, bin_name, &outdir)?;

    Ok(())
}