diff --git a/crates/cli/src/subcommands/dev.rs b/crates/cli/src/subcommands/dev.rs index 14bdb222f26..c8541ba76ab 100644 --- a/crates/cli/src/subcommands/dev.rs +++ b/crates/cli/src/subcommands/dev.rs @@ -323,6 +323,7 @@ fn upsert_env_db_names_and_hosts(env_path: &Path, server_host_url: &str, databas } else { String::new() }; + let original_contents = contents.clone(); for prefix in prefixes { for (suffix, value) in [("DB_NAME", database_name), ("HOST", server_host_url)] { @@ -343,7 +344,9 @@ fn upsert_env_db_names_and_hosts(env_path: &Path, server_host_url: &str, databas contents.push('\n'); } - fs::write(env_path, contents)?; + if contents != original_contents { + fs::write(env_path, contents)?; + } Ok(()) } diff --git a/crates/cli/src/subcommands/generate.rs b/crates/cli/src/subcommands/generate.rs index a0cd8b1fb39..4e6fb5ec124 100644 --- a/crates/cli/src/subcommands/generate.rs +++ b/crates/cli/src/subcommands/generate.rs @@ -200,7 +200,9 @@ pub async fn exec_ex( fs::create_dir_all(out_dir.join(parent))?; } let path = out_dir.join(fname); - fs::write(&path, code)?; + if !path.exists() || fs::read_to_string(&path)? != code { + fs::write(&path, code)?; + } paths.insert(path); }