Only ignore .git if we're in a git project, and so on
This commit is contained in:
parent
2682dde41d
commit
9327f8c293
|
@ -13,11 +13,13 @@ use watchexec::{
|
|||
Event, Tag,
|
||||
},
|
||||
filter::{globset::GlobsetFilterer, Filterer},
|
||||
project::ProjectType,
|
||||
};
|
||||
|
||||
pub async fn globset(args: &ArgMatches<'static>) -> Result<Arc<WatchexecFilterer>> {
|
||||
let (project_origin, workdir) = super::common::dirs(args).await?;
|
||||
let ignore_files = super::common::ignores(args, &project_origin).await?;
|
||||
let vcs_types = super::common::vcs_types(&project_origin).await;
|
||||
let ignore_files = super::common::ignores(args, &vcs_types, &project_origin).await?;
|
||||
|
||||
let mut ignores = Vec::new();
|
||||
|
||||
|
@ -30,10 +32,33 @@ pub async fn globset(args: &ArgMatches<'static>) -> Result<Arc<WatchexecFilterer
|
|||
(String::from(".*.kate-swp"), None),
|
||||
(String::from(".*.sw?"), None),
|
||||
(String::from(".*.sw?x"), None),
|
||||
(format!("**{s}.git{s}**", s = MAIN_SEPARATOR), None),
|
||||
(format!("**{s}.hg{s}**", s = MAIN_SEPARATOR), None),
|
||||
(format!("**{s}.svn{s}**", s = MAIN_SEPARATOR), None),
|
||||
]);
|
||||
|
||||
if vcs_types.contains(&ProjectType::Git) {
|
||||
ignores.push((format!("**{s}.git{s}**", s = MAIN_SEPARATOR), None));
|
||||
}
|
||||
|
||||
if vcs_types.contains(&ProjectType::Mercurial) {
|
||||
ignores.push((format!("**{s}.hg{s}**", s = MAIN_SEPARATOR), None));
|
||||
}
|
||||
if vcs_types.contains(&ProjectType::Bazaar) {
|
||||
ignores.push((format!("**{s}.bzr{s}**", s = MAIN_SEPARATOR), None));
|
||||
}
|
||||
|
||||
if vcs_types.contains(&ProjectType::Darcs) {
|
||||
ignores.push((format!("**{s}_darcs{s}**", s = MAIN_SEPARATOR), None));
|
||||
}
|
||||
|
||||
if vcs_types.contains(&ProjectType::Fossil) {
|
||||
ignores.push((
|
||||
format!("**{s}.fossil-settings{s}**", s = MAIN_SEPARATOR),
|
||||
None,
|
||||
));
|
||||
}
|
||||
|
||||
if vcs_types.contains(&ProjectType::Pijul) {
|
||||
ignores.push((format!("**{s}.pijul{s}**", s = MAIN_SEPARATOR), None));
|
||||
}
|
||||
}
|
||||
|
||||
let filters = args
|
||||
|
|
|
@ -63,11 +63,6 @@ pub async fn tagged(args: &ArgMatches<'static>) -> Result<Arc<TaggedFilterer>> {
|
|||
if !args.is_present("no-default-ignore") {
|
||||
filters.extend([
|
||||
Filter::from_glob_ignore(None, ".DS_Store/"),
|
||||
Filter::from_glob_ignore(None, ".git/"),
|
||||
Filter::from_glob_ignore(None, ".hg/"),
|
||||
Filter::from_glob_ignore(None, ".svn/"),
|
||||
Filter::from_glob_ignore(None, "_darcs/"),
|
||||
Filter::from_glob_ignore(None, ".fossil-settings/"),
|
||||
Filter::from_glob_ignore(None, "*.py[co]"),
|
||||
Filter::from_glob_ignore(None, "#*#"),
|
||||
Filter::from_glob_ignore(None, ".#*"),
|
||||
|
@ -75,6 +70,31 @@ pub async fn tagged(args: &ArgMatches<'static>) -> Result<Arc<TaggedFilterer>> {
|
|||
Filter::from_glob_ignore(None, ".*.sw?"),
|
||||
Filter::from_glob_ignore(None, ".*.sw?x"),
|
||||
]);
|
||||
|
||||
if vcs_types.contains(&ProjectType::Git) {
|
||||
filters.push(Filter::from_glob_ignore(None, "/.git"));
|
||||
}
|
||||
|
||||
if vcs_types.contains(&ProjectType::Mercurial) {
|
||||
filters.push(Filter::from_glob_ignore(None, "/.hg"));
|
||||
}
|
||||
|
||||
|
||||
if vcs_types.contains(&ProjectType::Bazaar) {
|
||||
filters.push(Filter::from_glob_ignore(None, "/.bzr"));
|
||||
}
|
||||
|
||||
if vcs_types.contains(&ProjectType::Darcs) {
|
||||
filters.push(Filter::from_glob_ignore(None, "/_darcs"));
|
||||
}
|
||||
|
||||
if vcs_types.contains(&ProjectType::Fossil) {
|
||||
filters.push(Filter::from_glob_ignore(None, "/.fossil-settings"));
|
||||
}
|
||||
|
||||
if vcs_types.contains(&ProjectType::Pijul) {
|
||||
filters.push(Filter::from_glob_ignore(None, "/.pijul"));
|
||||
}
|
||||
}
|
||||
|
||||
if args.is_present("no-meta") {
|
||||
|
|
Loading…
Reference in New Issue