mirror of
https://github.com/watchexec/watchexec.git
synced 2024-09-29 22:51:33 +02:00
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,
|
Event, Tag,
|
||||||
},
|
},
|
||||||
filter::{globset::GlobsetFilterer, Filterer},
|
filter::{globset::GlobsetFilterer, Filterer},
|
||||||
|
project::ProjectType,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub async fn globset(args: &ArgMatches<'static>) -> Result<Arc<WatchexecFilterer>> {
|
pub async fn globset(args: &ArgMatches<'static>) -> Result<Arc<WatchexecFilterer>> {
|
||||||
let (project_origin, workdir) = super::common::dirs(args).await?;
|
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();
|
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(".*.kate-swp"), None),
|
||||||
(String::from(".*.sw?"), None),
|
(String::from(".*.sw?"), None),
|
||||||
(String::from(".*.sw?x"), 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
|
let filters = args
|
||||||
|
@ -63,11 +63,6 @@ pub async fn tagged(args: &ArgMatches<'static>) -> Result<Arc<TaggedFilterer>> {
|
|||||||
if !args.is_present("no-default-ignore") {
|
if !args.is_present("no-default-ignore") {
|
||||||
filters.extend([
|
filters.extend([
|
||||||
Filter::from_glob_ignore(None, ".DS_Store/"),
|
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, "*.py[co]"),
|
||||||
Filter::from_glob_ignore(None, "#*#"),
|
Filter::from_glob_ignore(None, "#*#"),
|
||||||
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?"),
|
||||||
Filter::from_glob_ignore(None, ".*.sw?x"),
|
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") {
|
if args.is_present("no-meta") {
|
||||||
|
Loading…
Reference in New Issue
Block a user