Merge pull request #259 from dave-tucker/xtask

xtask: Add docs build
pull/260/head
Dave Tucker 3 years ago committed by GitHub
commit 5ff672d8a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,54 @@
use std::{
path::{Path, PathBuf},
process::Command,
};
use std::{fs, io};
pub fn docs() -> Result<(), anyhow::Error> {
let mut working_dir = PathBuf::from(".");
let args = vec![
"+nightly",
"doc",
"--workspace",
"--no-deps",
"--all-features",
];
let status = Command::new("cargo")
.current_dir(&working_dir)
.args(&args)
.status()
.expect("failed to build aya docs");
assert!(status.success());
working_dir.push("bpf");
let status = Command::new("cargo")
.current_dir(&working_dir)
.args(&args)
.status()
.expect("failed to build aya-bpf docs");
assert!(status.success());
copy_dir_all("./bpf/target/doc", "./target/doc")?;
Ok(())
}
fn copy_dir_all<P: AsRef<Path>>(src: P, dst: P) -> io::Result<()> {
fs::create_dir_all(&dst)?;
for entry in fs::read_dir(src)? {
let entry = entry?;
let ty = entry.file_type()?;
if ty.is_dir() {
copy_dir_all(entry.path(), dst.as_ref().join(entry.file_name()))?;
} else {
let new_path = dst.as_ref().join(entry.file_name());
if !new_path.exists() {
fs::copy(entry.path(), dst.as_ref().join(entry.file_name()))?;
}
}
}
Ok(())
}

@ -1,4 +1,5 @@
mod codegen; mod codegen;
mod docs;
use std::process::exit; use std::process::exit;
@ -12,6 +13,7 @@ pub struct Options {
#[derive(StructOpt)] #[derive(StructOpt)]
enum Command { enum Command {
Codegen(codegen::Options), Codegen(codegen::Options),
Docs,
} }
fn main() { fn main() {
@ -20,6 +22,7 @@ fn main() {
use Command::*; use Command::*;
let ret = match opts.command { let ret = match opts.command {
Codegen(opts) => codegen::codegen(opts), Codegen(opts) => codegen::codegen(opts),
Docs => docs::docs(),
}; };
if let Err(e) = ret { if let Err(e) = ret {

Loading…
Cancel
Save