My personal project and infrastructure archive
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
nomicon/development/tools/cargo-workspace2/src/lib.rs

64 lines
2.1 KiB

//! cargo-workspace2 is a library to help manage cargo workspaces
//!
//! Out of the box the `cargo` workspace experience leaves a lot to be
//! desired. Managing a repo with many crates in it can get out of
//! hand quickly. Moreover, other tools that try to solve these
//! issues often pick _one_ particular usecase of cargo workspaces,
//! and enforce very strict rules on how to use them.
//!
//! This library aims to solve some of the issues of dealing with
//! workspaces in a way that doesn't enforce a usage mode for the
//! user.
//!
//! This package also publishes a binary (cargo ws2), which is
//! recommended for most users. In case the binary handles a use-case
//! you have in a way that you don't like, this library aims to
//! provide a fallback so that you don't have to re-implement
//! everything from scratch.
//!
//! ## Using this library
//!
//! Parsing happens in stages. First you need to use the
//! [`cargo`](./cargo/index.html) module to parse the actual
//! `Cargo.toml` files. After that you can use the cargo models in
//! [`models`](models/index.html) to further process dependencies, and
//! create a [`DepGraph`](models/struct.DepGraph.html) to resolve queries and make changes.
pub mod cargo;
pub mod models;
pub mod ops;
pub mod query;
#[doc(hidden)]
pub mod cli;
// extern crate toml;
// extern crate toml_edit;
// pub use data_models::graph;
// use data_models::level::Level;
// use graph::DepGraph;
// use std::fs::File;
// pub use utilities::cargo_utils;
// pub use utilities::utils;
// pub mod data_models;
// pub mod utilities;
// pub fn do_batch_release(f: File, lvl: &Level) -> DepGraph {
// let members = cargo_utils::get_members(f);
// let configs = cargo_utils::batch_load_configs(&members);
// let v = configs
// .iter()
// .map(|c| cargo_utils::parse_config(c, &members))
// .fold(DepGraph::new(), |mut graph, (name, deps)| {
// graph.add_node(name.clone());
// deps.iter()
// .fold(graph, |graph, dep| graph.add_dependency(&name, dep))
// });
// println!("{:#?}", v);
// v
// }