fix: support global .gooseignore and negation patterns (#6157)
Signed-off-by: leocavalcante <leonardo.cavalcante@picpay.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
use anyhow::anyhow;
|
use anyhow::anyhow;
|
||||||
use base64::Engine;
|
use base64::Engine;
|
||||||
|
use etcetera::AppStrategy;
|
||||||
use ignore::gitignore::{Gitignore, GitignoreBuilder};
|
use ignore::gitignore::{Gitignore, GitignoreBuilder};
|
||||||
use include_dir::{include_dir, Dir};
|
use include_dir::{include_dir, Dir};
|
||||||
use indoc::{formatdoc, indoc};
|
use indoc::{formatdoc, indoc};
|
||||||
@@ -1289,14 +1290,26 @@ impl DeveloperServer {
|
|||||||
fn build_ignore_patterns(cwd: &PathBuf) -> Gitignore {
|
fn build_ignore_patterns(cwd: &PathBuf) -> Gitignore {
|
||||||
let mut builder = GitignoreBuilder::new(cwd);
|
let mut builder = GitignoreBuilder::new(cwd);
|
||||||
let local_ignore_path = cwd.join(".gooseignore");
|
let local_ignore_path = cwd.join(".gooseignore");
|
||||||
let mut has_ignore_file = false;
|
|
||||||
|
|
||||||
if local_ignore_path.is_file() {
|
let global_ignore_path = etcetera::choose_app_strategy(crate::APP_STRATEGY.clone())
|
||||||
let _ = builder.add(local_ignore_path);
|
.map(|strategy| strategy.config_dir().join(".gooseignore"))
|
||||||
has_ignore_file = true;
|
.ok();
|
||||||
|
|
||||||
|
let has_local_ignore = local_ignore_path.is_file();
|
||||||
|
let has_global_ignore = global_ignore_path
|
||||||
|
.as_ref()
|
||||||
|
.map(|p| p.is_file())
|
||||||
|
.unwrap_or(false);
|
||||||
|
|
||||||
|
if has_global_ignore {
|
||||||
|
let _ = builder.add(global_ignore_path.as_ref().unwrap());
|
||||||
}
|
}
|
||||||
|
|
||||||
if !has_ignore_file {
|
if has_local_ignore {
|
||||||
|
let _ = builder.add(&local_ignore_path);
|
||||||
|
}
|
||||||
|
|
||||||
|
if !has_local_ignore && !has_global_ignore {
|
||||||
let _ = builder.add_line(None, "**/.env");
|
let _ = builder.add_line(None, "**/.env");
|
||||||
let _ = builder.add_line(None, "**/.env.*");
|
let _ = builder.add_line(None, "**/.env.*");
|
||||||
let _ = builder.add_line(None, "**/secrets.*");
|
let _ = builder.add_line(None, "**/secrets.*");
|
||||||
|
|||||||
Reference in New Issue
Block a user