use xshell::Shell;
use crate::environment::Package;
use crate::quiet_cmd;
use crate::toolchain::{prepare_toolchain, Toolchain};
pub fn run(sh: &Shell, packages: &[Package], open: bool) -> Result<(), Box<dyn std::error::Error>> {
prepare_toolchain(sh, Toolchain::Stable)?;
let mut cmd = quiet_cmd!(sh, "cargo --locked doc --all-features --no-deps");
for package in packages {
cmd = cmd.args(&["-p", &package.id]);
}
if open {
cmd = cmd.arg("--open");
}
cmd.env("RUSTDOCFLAGS", "-D warnings").run()?;
Ok(())
}
pub fn run_docsrs(
sh: &Shell,
packages: &[Package],
open: bool,
) -> Result<(), Box<dyn std::error::Error>> {
prepare_toolchain(sh, Toolchain::Nightly)?;
let mut cmd = quiet_cmd!(sh, "cargo --locked doc --all-features --no-deps");
for package in packages {
cmd = cmd.args(&["-p", &package.id]);
}
if open {
cmd = cmd.arg("--open");
}
cmd.env("RUSTDOCFLAGS", "--cfg docsrs -D warnings -D rustdoc::broken-intra-doc-links").run()?;
Ok(())
}