Code optimise

main
Michal 2 years ago
parent 9fc6931583
commit a68d201bba
No known key found for this signature in database
GPG Key ID: A6A1A4DCB22279B9

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

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

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

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

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

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

@ -1,11 +1,11 @@
mod build;
mod config;
mod init;
mod prune;
mod pull;
pub use build::*; pub use build::*;
pub use config::*; pub use config::*;
pub use init::*; pub use init::*;
pub use prune::*; pub use prune::*;
pub use pull::*; 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::fs;
use std::process::Command; use std::process::Command;
use crate::{info, read_cfg};
pub fn prune() { pub fn prune() {
let config = read_cfg(); let config = read_cfg();
let mut packages = vec![]; let mut packages = vec![];

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

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

@ -1,7 +1,7 @@
mod config;
mod package;
mod repo;
pub use config::*; pub use config::*;
pub use package::*; pub use package::*;
pub use repo::*; 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::path::Path;
use std::process::Command; use std::process::Command;
use std::{env, fs}; use std::{env, fs};
use crate::crash;
use crate::internal::AppExitCode;
pub fn build(pkg: &str) -> i32 { pub fn build(pkg: &str) -> i32 {
let dir = env::current_dir().unwrap(); let dir = env::current_dir().unwrap();
if !Path::exists("out".as_ref()) { if !Path::exists("out".as_ref()) {

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

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

Loading…
Cancel
Save