diff --git a/Cargo.lock b/Cargo.lock index 72ecbbe..b1fedf6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -122,7 +122,7 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "dev_tools" -version = "0.1.0" +version = "0.9.0" dependencies = [ "anyhow", "clap", diff --git a/Cargo.toml b/Cargo.toml index 95abb12..a1fd417 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dev_tools" -version = "0.1.0" +version = "0.9.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/src/config/parse.rs b/src/config/parse.rs index b8057a0..16b9c3e 100644 --- a/src/config/parse.rs +++ b/src/config/parse.rs @@ -4,7 +4,7 @@ use std::{ }; use anyhow::Context; -const GLOBAL_CONNECTION_PATH: &str = "conf/global/connections.env"; +pub const GLOBAL_CONNECTION_PATH: &str = "conf/global/connections.env"; const LOCAL_CONNECTION_PATH: &str = "conf/local/.env"; pub fn set_local_db(start: bool) -> Result<(), Box> { @@ -85,7 +85,6 @@ fn toggle_after_line( } fn toggle(line: &str, activate: bool) -> String { - dbg!(line, activate); if activate { return line.replacen('#', "", 1); } diff --git a/src/git/command.rs b/src/git/command.rs new file mode 100644 index 0000000..40e0cc8 --- /dev/null +++ b/src/git/command.rs @@ -0,0 +1,21 @@ +use std::process::Command; + +use crate::config::parse::GLOBAL_CONNECTION_PATH; + +pub fn toggle_index(start: bool) -> Result<(), Box> { + let change: &str = match start { + true => "--assume-unchanged", + false => "--no-assume-unchanged", + }; + Command::new("git") + .args(["update-index", change, "conf/global/connections.env"]) + .status()?; + + if !start { + Command::new("git") + .args(["checkout", GLOBAL_CONNECTION_PATH]) + .status()?; + } + + Ok(()) +} diff --git a/src/git/mod.rs b/src/git/mod.rs new file mode 100644 index 0000000..9fe7961 --- /dev/null +++ b/src/git/mod.rs @@ -0,0 +1 @@ +pub mod command; diff --git a/src/main.rs b/src/main.rs index f7e957e..058eb85 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,6 +4,7 @@ use env::config::{load_config, DevToolsConf}; use crate::{ arguments::Arguments, config::parse::{set_dot_env, set_local_db}, + git::command::toggle_index, }; use clap::Parser; @@ -11,6 +12,7 @@ mod arguments; mod config; mod container; mod env; +mod git; fn main() -> Result<(), Box> { let args: Arguments = Arguments::parse(); @@ -21,9 +23,10 @@ fn main() -> Result<(), Box> { start_docker_compose(&config.container_service, &config.container_dir, start)?; set_local_db(start)?; set_dot_env(start)?; + toggle_index(start)?; println!( - "Current directory: {}", + "Don't forget your interpreter! Current directory: {}", config.current_directory.as_path().to_str().unwrap() ); Ok(())