Removed intrusive auto pulling of parent git repo

main
Michal 2 years ago
parent 59f3c69f72
commit 8850997b5d
No known key found for this signature in database
GPG Key ID: A6A1A4DCB22279B9

@ -2,9 +2,6 @@
#![allow(clippy::too_many_lines)] #![allow(clippy::too_many_lines)]
use clap::Parser; use clap::Parser;
use std::env;
use std::path::Path;
use std::process::Command;
use crate::args::{Args, Operation}; use crate::args::{Args, Operation};
use crate::internal::parse_cfg; use crate::internal::parse_cfg;
@ -23,6 +20,7 @@ fn main() {
crash!(AppExitCode::RunAsRoot, "Running malachite as root is disallowed as it can lead to system breakage. Instead, malachite will prompt you when it needs superuser permissions"); crash!(AppExitCode::RunAsRoot, "Running malachite as root is disallowed as it can lead to system breakage. Instead, malachite will prompt you when it needs superuser permissions");
} }
// Get required variables
let args: Args = Args::parse(); let args: Args = Args::parse();
let exclude = &args.exclude; let exclude = &args.exclude;
let verbose = args.verbose; let verbose = args.verbose;
@ -30,56 +28,15 @@ fn main() {
log!(verbose, "Exclude: {:?}", exclude); log!(verbose, "Exclude: {:?}", exclude);
log!(verbose, "Verbose: You guess. :)"); log!(verbose, "Verbose: You guess. :)");
// Parse config
let config = parse_cfg(verbose); let config = parse_cfg(verbose);
log!(verbose, "Config: {:?}", config); log!(verbose, "Config: {:?}", config);
if Path::exists("../.git".as_ref()) { // Get repository mode status
log!(verbose, "Detected parent git repository");
info!("Parent directory is a git directory, pulling latest mlc.toml. It is advised you run mlc pull/update in all malachite directories");
let dir = env::current_dir().unwrap();
env::set_current_dir("../").unwrap();
log!(verbose, "Current dir: {:?}", env::current_dir().unwrap());
if config.base.smart_pull {
log!(verbose, "Smart pull");
Command::new("git")
.args(&["remote", "update"])
.spawn()
.unwrap()
.wait()
.unwrap();
let output = Command::new("git").arg("status").output().unwrap();
if String::from_utf8(output.stdout)
.unwrap()
.contains("Your branch is behind")
{
info!("Branch out of date, pulling changes");
Command::new("git")
.arg("pull")
.spawn()
.unwrap()
.wait()
.unwrap();
} else {
info!("No changes to pull");
}
} else {
log!(verbose, "Normal pull");
Command::new("git")
.arg("pull")
.spawn()
.unwrap()
.wait()
.unwrap();
}
env::set_current_dir(dir).unwrap();
log!(verbose, "Current dir: {:?}", env::current_dir().unwrap());
}
let repository = config.base.mode == "repository"; let repository = config.base.mode == "repository";
log!(verbose, "Repository Mode: {:?}", repository); log!(verbose, "Repository Mode: {:?}", repository);
// Arg matching
match args.subcommand.unwrap_or(Operation::Clone) { match args.subcommand.unwrap_or(Operation::Clone) {
Operation::Clone => operations::clone(verbose), Operation::Clone => operations::clone(verbose),
Operation::Build { Operation::Build {

Loading…
Cancel
Save