cargo_publish_workspace/
lib.rs

1use self::cli::Command;
2use anyhow::{
3    bail,
4    Context,
5    Error,
6};
7use clap::Parser;
8use std::{
9    self,
10    process::{self,},
11    thread::sleep,
12    time::Duration,
13};
14
15use crate::{
16    order_crates::{
17        order_crates_for_publishing,
18        CrateInfo,
19    },
20    publish::publish_workspace,
21    utils::print_style,
22};
23
24mod cli;
25mod order_crates;
26mod publish;
27#[macro_use]
28mod utils;
29
30// Common Types
31type Result<T = (), E = Error> = std::result::Result<T, E>;
32
33// Constants
34pub const ENV_VAR_CARGO_REGISTRY_TOKEN: &str = "CARGO_REGISTRY_TOKEN";
35pub const ENV_VAR_CI_TAG: &str = "CI_TAG";
36
37pub fn main() {
38    let args = Command::parse();
39
40    if let Err(err) = args.exec() {
41        print_error!(&format!("{err:?}"));
42        process::exit(1);
43    }
44}