added git update index

main
Mathias Rothenhaeusler 2024-01-27 19:11:16 +01:00
parent 1993aca4f2
commit 5044f6a19c
6 changed files with 29 additions and 5 deletions

2
Cargo.lock generated
View File

@ -122,7 +122,7 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
[[package]] [[package]]
name = "dev_tools" name = "dev_tools"
version = "0.1.0" version = "0.9.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"clap", "clap",

View File

@ -1,6 +1,6 @@
[package] [package]
name = "dev_tools" name = "dev_tools"
version = "0.1.0" version = "0.9.0"
edition = "2021" edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View File

@ -4,7 +4,7 @@ use std::{
}; };
use anyhow::Context; 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"; const LOCAL_CONNECTION_PATH: &str = "conf/local/.env";
pub fn set_local_db(start: bool) -> Result<(), Box<dyn std::error::Error>> { pub fn set_local_db(start: bool) -> Result<(), Box<dyn std::error::Error>> {
@ -85,7 +85,6 @@ fn toggle_after_line(
} }
fn toggle(line: &str, activate: bool) -> String { fn toggle(line: &str, activate: bool) -> String {
dbg!(line, activate);
if activate { if activate {
return line.replacen('#', "", 1); return line.replacen('#', "", 1);
} }

21
src/git/command.rs 100644
View File

@ -0,0 +1,21 @@
use std::process::Command;
use crate::config::parse::GLOBAL_CONNECTION_PATH;
pub fn toggle_index(start: bool) -> Result<(), Box<dyn std::error::Error>> {
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(())
}

1
src/git/mod.rs 100644
View File

@ -0,0 +1 @@
pub mod command;

View File

@ -4,6 +4,7 @@ use env::config::{load_config, DevToolsConf};
use crate::{ use crate::{
arguments::Arguments, arguments::Arguments,
config::parse::{set_dot_env, set_local_db}, config::parse::{set_dot_env, set_local_db},
git::command::toggle_index,
}; };
use clap::Parser; use clap::Parser;
@ -11,6 +12,7 @@ mod arguments;
mod config; mod config;
mod container; mod container;
mod env; mod env;
mod git;
fn main() -> Result<(), Box<dyn std::error::Error>> { fn main() -> Result<(), Box<dyn std::error::Error>> {
let args: Arguments = Arguments::parse(); let args: Arguments = Arguments::parse();
@ -21,9 +23,10 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
start_docker_compose(&config.container_service, &config.container_dir, start)?; start_docker_compose(&config.container_service, &config.container_dir, start)?;
set_local_db(start)?; set_local_db(start)?;
set_dot_env(start)?; set_dot_env(start)?;
toggle_index(start)?;
println!( println!(
"Current directory: {}", "Don't forget your interpreter! Current directory: {}",
config.current_directory.as_path().to_str().unwrap() config.current_directory.as_path().to_str().unwrap()
); );
Ok(()) Ok(())