diff --git a/src/main/scala/io/github/roiocam/DependWalkerPlugin.scala b/src/main/scala/io/github/roiocam/DependWalkerPlugin.scala index a533c45..4bb881d 100644 --- a/src/main/scala/io/github/roiocam/DependWalkerPlugin.scala +++ b/src/main/scala/io/github/roiocam/DependWalkerPlugin.scala @@ -27,26 +27,14 @@ object DependWalkerPlugin extends AutoPlugin { * @param currentProject * @return */ - def scopedKeyIsMatch( - currentKey: ScopedKey[_], - executeTaskMatcher: ScopeKeyMatcher, - currentProject: ProjectRef - ): Boolean = { - val predicate: (ScopedKey[_], ScopedKey[_]) => Boolean = (sk, vk) => - executeTaskMatcher.mode match { - case CheckConfig => sk.scope.config == vk.scope.config - case CheckTask => sk.key == vk.key - case CheckBoth => sk.key == vk.key && sk.scope.config == vk.scope.config - case _ => false - } - - currentKey.scope.project match { - case Select(projectRef) => - projectRef == currentProject && predicate( - currentKey, - executeTaskMatcher.key - ) - case _ => false + def scopedKeyIsMatch(sk: ScopedKey[_], matcher: ScopeKeyMatcher): Boolean = { + val expectConfig = matcher.key.scope.config + val expectKey = matcher.key.key + matcher.mode match { + case CheckConfig => sk.scope.config == expectConfig + case CheckTask => sk.key == expectKey + case CheckBoth => sk.key == expectKey && sk.scope.config == expectConfig + case _ => false } } @@ -59,12 +47,9 @@ object DependWalkerPlugin extends AutoPlugin { def dependWalk( dependencies: Set[_ <: ScopedKey[_]], expectDependMatcher: ScopeKeyMatcher - )(implicit - cMap: Map[Def.ScopedKey[_], Def.Flattened], - currentProject: ProjectRef - ): Boolean = { + )(implicit cMap: Map[Def.ScopedKey[_], Def.Flattened]): Boolean = { dependencies.exists { sk => - scopedKeyIsMatch(sk, expectDependMatcher, currentProject) match { + scopedKeyIsMatch(sk, expectDependMatcher) match { case true => true case false => cMap.get(sk).exists { flattened => @@ -92,10 +77,9 @@ object DependWalkerPlugin extends AutoPlugin { )(implicit cMap: Map[Def.ScopedKey[_], Def.Flattened]): Unit = { val executeTaskOnCurrentProject = cMap.collect { case (currentKey, _) - if scopedKeyIsMatch( + if currentKey.scope.project.isSelect && scopedKeyIsMatch( currentKey, - walkTask.executeTask, - currentProject + walkTask.executeTask ) => currentKey } @@ -105,7 +89,7 @@ object DependWalkerPlugin extends AutoPlugin { case Some(c) => c.dependencies.toSet; case None => Set.empty } - if (dependWalk(depends, walkTask.expectDepend)(cMap, currentProject)) { + if (dependWalk(depends, walkTask.expectDepend)) { println( s"Depend verified in the tree of ${currentProject.project} / ${key.scope.config} / ${key.key}" )