Code optimise

main
Michal 2 years ago
parent 9f8ba7b3d7
commit fffa888658

@ -1,71 +1,71 @@
use clap::{ArgAction, Parser, Subcommand};
#[derive(Debug, Clone, Parser)]
#[clap(name="Malachite", version=env!("CARGO_PKG_VERSION"), about=env!("CARGO_PKG_DESCRIPTION"))]
#[clap(name = "Malachite", version = env ! ("CARGO_PKG_VERSION"), about = env ! ("CARGO_PKG_DESCRIPTION"))]
pub struct Args {
#[clap(subcommand)]
pub subcommand: Option<Operation>,
/// Sets the level of verbosity
#[clap(long, short, global(true), action=ArgAction::Count)]
#[clap(long, short, global(true), action = ArgAction::Count)]
pub verbose: u8,
/// Complete operations without prompting user
#[clap(long="noconfirm", global(true), action=ArgAction::SetTrue)]
#[clap(long = "noconfirm", global(true), action = ArgAction::SetTrue)]
pub no_confirm: bool,
}
#[derive(Debug, Clone, Subcommand)]
pub enum Operation {
/// Builds the given packages
#[clap(name="build", aliases=&["b"])]
#[clap(name = "build", aliases = & ["b"])]
Build {
/// The packages to operate on
#[clap(name="package(s)", action=ArgAction::Append, index=1)]
#[clap(name = "package(s)", action = ArgAction::Append, index = 1)]
packages: Vec<String>,
/// Builds all packages in mlc.toml (except if -x is specified)
#[clap(long="all", takes_value=false, action=ArgAction::SetTrue, conflicts_with="package(s)")]
#[clap(long = "all", takes_value = false, action = ArgAction::SetTrue, conflicts_with = "package(s)")]
all: bool,
/// Excludes packages from given operation
#[clap(short='x', long="exclude", action=ArgAction::Append, takes_value=true)]
#[clap(short = 'x', long = "exclude", action = ArgAction::Append, takes_value = true)]
exclude: Vec<String>,
/// Does not regenerate repository after building given package(s)
#[clap(short='n', long="no-regen", action=ArgAction::SetTrue)]
#[clap(short = 'n', long = "no-regen", action = ArgAction::SetTrue)]
no_regen: bool,
},
/// Generates repository from built packages
#[clap(name="repo-gen", aliases=&["r"])]
#[clap(name = "repo-gen", aliases = & ["r"])]
RepoGen,
/// Prunes duplicate packages from the repository
#[clap(name="prune", aliases=&["p"])]
#[clap(name = "prune", aliases = & ["p"])]
Prune,
/// Clones all git repositories from mlc.toml branching from current directory
#[clap(name="init", aliases=&["i"])]
#[clap(name = "init", aliases = & ["i"])]
Init,
/// Pulls in git repositories from mlc.toml branching from current directory
#[clap(name="pull", aliases=&["u"])]
#[clap(name = "pull", aliases = & ["u"])]
Pull {
/// The packages to operate on
#[clap(name="package(s)", help="The packages to operate on", action=ArgAction::Append, index=1)]
#[clap(name = "package(s)", help = "The packages to operate on", action = ArgAction::Append, index = 1)]
packages: Vec<String>,
/// Pulls from all git repositories from mlc.toml branching from current directory
#[clap(long="all", action=ArgAction::SetTrue, conflicts_with="package(s)")]
#[clap(long = "all", action = ArgAction::SetTrue, conflicts_with = "package(s)")]
all: bool,
/// Excludes packages from given operation
#[clap(short='x', long="exclude", action=ArgAction::Append, takes_value=true)]
#[clap(short = 'x', long = "exclude", action = ArgAction::Append, takes_value = true)]
exclude: Vec<String>,
},
/// Create and/or open local config file
#[clap(name="config", aliases=&["c"])]
#[clap(name = "config", aliases = & ["c"])]
Config,
}

@ -1,5 +1,5 @@
pub use exit_codes::*;
mod exit_codes;
pub mod strings;
pub mod structs;
pub use exit_codes::*;

@ -1,7 +1,8 @@
use crate::internal::AppExitCode;
use colored::*;
use std::process::exit;
use crate::internal::AppExitCode;
const LOGO_SYMBOL: &str = "μ";
const ERR_SYMBOL: &str = "❌";

@ -1,3 +1,4 @@
use clap::Parser;
use std::env;
use std::path::Path;
use std::process::Command;
@ -5,8 +6,6 @@ use std::process::Command;
use crate::args::{Args, Operation};
use crate::internal::AppExitCode;
use crate::repository::create_config;
use clap::Parser;
use crate::workspace::read_cfg;
#[global_allocator]

@ -1,8 +1,9 @@
use crate::create_config;
use std::env;
use std::path::Path;
use std::process::Command;
use crate::create_config;
pub fn config() {
if !Path::exists("mlc.toml".as_ref()) {
create_config();

@ -1,6 +1,7 @@
use std::process::Command;
use crate::internal::AppExitCode;
use crate::{crash, info, workspace};
use std::process::Command;
pub fn init() {
let config = workspace::read_cfg();

@ -1,11 +1,11 @@
mod build;
mod config;
mod init;
mod prune;
mod pull;
pub use build::*;
pub use config::*;
pub use init::*;
pub use prune::*;
pub use pull::*;
mod build;
mod config;
mod init;
mod prune;
mod pull;

@ -1,7 +1,8 @@
use crate::{info, read_cfg};
use std::fs;
use std::process::Command;
use crate::{info, read_cfg};
pub fn prune() {
let config = read_cfg();
let mut packages = vec![];

@ -1,7 +1,8 @@
use crate::info;
use std::env;
use std::process::Command;
use crate::info;
fn do_the_pulling(packages: Vec<String>) {
for dir in packages {
let current_dir = env::current_dir().unwrap();

@ -1,10 +1,11 @@
use crate::crash;
use crate::internal::AppExitCode;
use std::env;
use std::fs::File;
use std::io::Write;
use std::path::Path;
use crate::crash;
use crate::internal::AppExitCode;
const DEFAULT_CONFIG: &str = r#"# either "repository" or "workspace"
mode = ""

@ -1,7 +1,7 @@
mod config;
mod package;
mod repo;
pub use config::*;
pub use package::*;
pub use repo::*;
mod config;
mod package;
mod repo;

@ -1,9 +1,10 @@
use crate::crash;
use crate::internal::AppExitCode;
use std::path::Path;
use std::process::Command;
use std::{env, fs};
use crate::crash;
use crate::internal::AppExitCode;
pub fn build(pkg: &str) -> i32 {
let dir = env::current_dir().unwrap();
if !Path::exists("out".as_ref()) {

@ -1,3 +1,3 @@
mod read;
pub use read::*;
mod read;

@ -1,9 +1,9 @@
use crate::crash;
use crate::internal::AppExitCode;
use std::fs;
use std::path::Path;
use crate::crash;
use crate::internal::structs::{Config, SplitRepo, UnexpandedConfig};
use crate::internal::AppExitCode;
pub fn read_cfg() -> Config {
if !Path::exists("mlc.toml".as_ref()) {

Loading…
Cancel
Save