aube 1.38.1

Aube — a fast Node.js package manager
Documentation
//! `aube prefix` — print the current package prefix directory.
//!
//! Mirrors `pnpm prefix`. Without flags, prints the current project root
//! (or cwd when no project root is found). With `--global` / `-g`, prints
//! the global prefix directory used for PATH-visible global bins.

use clap::Args;

pub const AFTER_LONG_HELP: &str = "\
Examples:

  $ aube prefix
  /home/user/project

  $ aube prefix -g
  /home/user/.local/share/pnpm
";

#[derive(Debug, Args)]
pub struct PrefixArgs {
    /// Print the global prefix directory instead of the project's root
    #[arg(short, long)]
    pub global: bool,
}

pub async fn run(args: PrefixArgs) -> miette::Result<()> {
    if args.global {
        let prefix = super::global::prefix_dir()?;
        println!("{}", prefix.display());
        return Ok(());
    }
    let cwd = crate::dirs::project_root_or_cwd()?;
    println!("{}", cwd.display());
    Ok(())
}