Skip to content

Commit

Permalink
use relative paths while checking as well
Browse files Browse the repository at this point in the history
  • Loading branch information
BrianHicks committed Nov 20, 2020
1 parent a5418b3 commit 2deb9de
Show file tree
Hide file tree
Showing 7 changed files with 142 additions and 135 deletions.
13 changes: 10 additions & 3 deletions src/store.rs
Expand Up @@ -187,19 +187,26 @@ impl Store {
let imports_to_files = self
.scan()
.context("could not scan the project roots for Elm files")?;

let parent_path = self
.absolute_config_parent_path()
.context("could not get parent path to check for new usages")?;

let mut out = Vec::new();

for (import, existing) in self.forbidden.iter() {
if let Some(found_imports) = imports_to_files.get(import) {
let new_usages = found_imports
.iter()
.map(|found| found.path.to_owned())
.flat_map(|found| pathdiff::diff_paths(&found.path, &parent_path))
.collect::<BTreeSet<PathBuf>>();

let mut to_positions: BTreeMap<&PathBuf, importfinder::Position> = BTreeMap::new();
let mut to_positions: BTreeMap<PathBuf, importfinder::Position> = BTreeMap::new();

for import in found_imports.iter() {
to_positions.insert(&import.path, import.position);
if let Some(p) = pathdiff::diff_paths(&import.path, &parent_path) {
to_positions.insert(p, import.position);
}
}

for file in new_usages.difference(&existing.usages) {
Expand Down
44 changes: 22 additions & 22 deletions tests/golden-results/editor-output.sh.txt
@@ -1,22 +1,22 @@
vendor/elm-spa-example/src/Article/Body.elm:3:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Article/Feed.elm:9:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Article.elm:20:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Asset.elm:10:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Author.elm:36:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Avatar.elm:4:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Loading.elm:7:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Main.elm:8:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/Article/Editor.elm:9:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/Article.elm:16:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/Blank.elm:3:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/Home.elm:12:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/Login.elm:8:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/NotFound.elm:4:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/Profile.elm:12:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/Register.elm:5:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/Settings.elm:8:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page.elm:6:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/PaginatedList.elm:3:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Route.elm:5:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Timestamp.elm:3:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Username.elm:3:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Article/Body.elm:3:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Article/Feed.elm:9:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Article.elm:20:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Asset.elm:10:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Author.elm:36:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Avatar.elm:4:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Loading.elm:7:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Main.elm:8:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/Article/Editor.elm:9:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/Article.elm:16:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/Blank.elm:3:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/Home.elm:12:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/Login.elm:8:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/NotFound.elm:4:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/Profile.elm:12:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/Register.elm:5:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/Settings.elm:8:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page.elm:6:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/PaginatedList.elm:3:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Route.elm:5:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Timestamp.elm:3:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Username.elm:3:7:forbidden import Html (use Html.Styled)
44 changes: 22 additions & 22 deletions tests/golden-results/forbid-html-no-hint.sh.txt
@@ -1,25 +1,25 @@
vendor/elm-spa-example/src/Article/Body.elm:3:7:forbidden import Html
vendor/elm-spa-example/src/Article/Feed.elm:9:7:forbidden import Html
vendor/elm-spa-example/src/Article.elm:20:7:forbidden import Html
vendor/elm-spa-example/src/Asset.elm:10:7:forbidden import Html
vendor/elm-spa-example/src/Author.elm:36:7:forbidden import Html
vendor/elm-spa-example/src/Avatar.elm:4:7:forbidden import Html
vendor/elm-spa-example/src/Loading.elm:7:7:forbidden import Html
vendor/elm-spa-example/src/Main.elm:8:7:forbidden import Html
vendor/elm-spa-example/src/Page/Article/Editor.elm:9:7:forbidden import Html
vendor/elm-spa-example/src/Page/Article.elm:16:7:forbidden import Html
vendor/elm-spa-example/src/Page/Blank.elm:3:7:forbidden import Html
vendor/elm-spa-example/src/Page/Home.elm:12:7:forbidden import Html
vendor/elm-spa-example/src/Page/Login.elm:8:7:forbidden import Html
vendor/elm-spa-example/src/Page/NotFound.elm:4:7:forbidden import Html
vendor/elm-spa-example/src/Page/Profile.elm:12:7:forbidden import Html
vendor/elm-spa-example/src/Page/Register.elm:5:7:forbidden import Html
vendor/elm-spa-example/src/Page/Settings.elm:8:7:forbidden import Html
vendor/elm-spa-example/src/Page.elm:6:7:forbidden import Html
vendor/elm-spa-example/src/PaginatedList.elm:3:7:forbidden import Html
vendor/elm-spa-example/src/Route.elm:5:7:forbidden import Html
vendor/elm-spa-example/src/Timestamp.elm:3:7:forbidden import Html
vendor/elm-spa-example/src/Username.elm:3:7:forbidden import Html
../vendor/elm-spa-example/src/Article/Body.elm:3:7:forbidden import Html
../vendor/elm-spa-example/src/Article/Feed.elm:9:7:forbidden import Html
../vendor/elm-spa-example/src/Article.elm:20:7:forbidden import Html
../vendor/elm-spa-example/src/Asset.elm:10:7:forbidden import Html
../vendor/elm-spa-example/src/Author.elm:36:7:forbidden import Html
../vendor/elm-spa-example/src/Avatar.elm:4:7:forbidden import Html
../vendor/elm-spa-example/src/Loading.elm:7:7:forbidden import Html
../vendor/elm-spa-example/src/Main.elm:8:7:forbidden import Html
../vendor/elm-spa-example/src/Page/Article/Editor.elm:9:7:forbidden import Html
../vendor/elm-spa-example/src/Page/Article.elm:16:7:forbidden import Html
../vendor/elm-spa-example/src/Page/Blank.elm:3:7:forbidden import Html
../vendor/elm-spa-example/src/Page/Home.elm:12:7:forbidden import Html
../vendor/elm-spa-example/src/Page/Login.elm:8:7:forbidden import Html
../vendor/elm-spa-example/src/Page/NotFound.elm:4:7:forbidden import Html
../vendor/elm-spa-example/src/Page/Profile.elm:12:7:forbidden import Html
../vendor/elm-spa-example/src/Page/Register.elm:5:7:forbidden import Html
../vendor/elm-spa-example/src/Page/Settings.elm:8:7:forbidden import Html
../vendor/elm-spa-example/src/Page.elm:6:7:forbidden import Html
../vendor/elm-spa-example/src/PaginatedList.elm:3:7:forbidden import Html
../vendor/elm-spa-example/src/Route.elm:5:7:forbidden import Html
../vendor/elm-spa-example/src/Timestamp.elm:3:7:forbidden import Html
../vendor/elm-spa-example/src/Username.elm:3:7:forbidden import Html

If these are too much to handle right now (or you intended to import a forbidden
module), please run me with the `update` command!
44 changes: 22 additions & 22 deletions tests/golden-results/forbid-html-with-hint.sh.txt
@@ -1,25 +1,25 @@
vendor/elm-spa-example/src/Article/Body.elm:3:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Article/Feed.elm:9:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Article.elm:20:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Asset.elm:10:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Author.elm:36:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Avatar.elm:4:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Loading.elm:7:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Main.elm:8:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/Article/Editor.elm:9:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/Article.elm:16:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/Blank.elm:3:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/Home.elm:12:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/Login.elm:8:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/NotFound.elm:4:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/Profile.elm:12:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/Register.elm:5:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page/Settings.elm:8:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Page.elm:6:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/PaginatedList.elm:3:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Route.elm:5:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Timestamp.elm:3:7:forbidden import Html (use Html.Styled)
vendor/elm-spa-example/src/Username.elm:3:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Article/Body.elm:3:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Article/Feed.elm:9:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Article.elm:20:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Asset.elm:10:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Author.elm:36:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Avatar.elm:4:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Loading.elm:7:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Main.elm:8:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/Article/Editor.elm:9:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/Article.elm:16:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/Blank.elm:3:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/Home.elm:12:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/Login.elm:8:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/NotFound.elm:4:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/Profile.elm:12:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/Register.elm:5:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page/Settings.elm:8:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Page.elm:6:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/PaginatedList.elm:3:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Route.elm:5:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Timestamp.elm:3:7:forbidden import Html (use Html.Styled)
../vendor/elm-spa-example/src/Username.elm:3:7:forbidden import Html (use Html.Styled)

If these are too much to handle right now (or you intended to import a forbidden
module), please run me with the `update` command!
44 changes: 22 additions & 22 deletions tests/golden-results/json-output.sh.txt
@@ -1,6 +1,6 @@
[
{
"path": "vendor/elm-spa-example/src/Article/Body.elm",
"path": "../vendor/elm-spa-example/src/Article/Body.elm",
"position": {
"row": 3,
"column": 7
Expand All @@ -13,7 +13,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Article/Feed.elm",
"path": "../vendor/elm-spa-example/src/Article/Feed.elm",
"position": {
"row": 9,
"column": 7
Expand All @@ -26,7 +26,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Article.elm",
"path": "../vendor/elm-spa-example/src/Article.elm",
"position": {
"row": 20,
"column": 7
Expand All @@ -39,7 +39,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Asset.elm",
"path": "../vendor/elm-spa-example/src/Asset.elm",
"position": {
"row": 10,
"column": 7
Expand All @@ -52,7 +52,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Author.elm",
"path": "../vendor/elm-spa-example/src/Author.elm",
"position": {
"row": 36,
"column": 7
Expand All @@ -65,7 +65,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Avatar.elm",
"path": "../vendor/elm-spa-example/src/Avatar.elm",
"position": {
"row": 4,
"column": 7
Expand All @@ -78,7 +78,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Loading.elm",
"path": "../vendor/elm-spa-example/src/Loading.elm",
"position": {
"row": 7,
"column": 7
Expand All @@ -91,7 +91,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Main.elm",
"path": "../vendor/elm-spa-example/src/Main.elm",
"position": {
"row": 8,
"column": 7
Expand All @@ -104,7 +104,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Page/Article/Editor.elm",
"path": "../vendor/elm-spa-example/src/Page/Article/Editor.elm",
"position": {
"row": 9,
"column": 7
Expand All @@ -117,7 +117,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Page/Article.elm",
"path": "../vendor/elm-spa-example/src/Page/Article.elm",
"position": {
"row": 16,
"column": 7
Expand All @@ -130,7 +130,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Page/Blank.elm",
"path": "../vendor/elm-spa-example/src/Page/Blank.elm",
"position": {
"row": 3,
"column": 7
Expand All @@ -143,7 +143,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Page/Home.elm",
"path": "../vendor/elm-spa-example/src/Page/Home.elm",
"position": {
"row": 12,
"column": 7
Expand All @@ -156,7 +156,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Page/Login.elm",
"path": "../vendor/elm-spa-example/src/Page/Login.elm",
"position": {
"row": 8,
"column": 7
Expand All @@ -169,7 +169,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Page/NotFound.elm",
"path": "../vendor/elm-spa-example/src/Page/NotFound.elm",
"position": {
"row": 4,
"column": 7
Expand All @@ -182,7 +182,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Page/Profile.elm",
"path": "../vendor/elm-spa-example/src/Page/Profile.elm",
"position": {
"row": 12,
"column": 7
Expand All @@ -195,7 +195,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Page/Register.elm",
"path": "../vendor/elm-spa-example/src/Page/Register.elm",
"position": {
"row": 5,
"column": 7
Expand All @@ -208,7 +208,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Page/Settings.elm",
"path": "../vendor/elm-spa-example/src/Page/Settings.elm",
"position": {
"row": 8,
"column": 7
Expand All @@ -221,7 +221,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Page.elm",
"path": "../vendor/elm-spa-example/src/Page.elm",
"position": {
"row": 6,
"column": 7
Expand All @@ -234,7 +234,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/PaginatedList.elm",
"path": "../vendor/elm-spa-example/src/PaginatedList.elm",
"position": {
"row": 3,
"column": 7
Expand All @@ -247,7 +247,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Route.elm",
"path": "../vendor/elm-spa-example/src/Route.elm",
"position": {
"row": 5,
"column": 7
Expand All @@ -260,7 +260,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Timestamp.elm",
"path": "../vendor/elm-spa-example/src/Timestamp.elm",
"position": {
"row": 3,
"column": 7
Expand All @@ -273,7 +273,7 @@
}
},
{
"path": "vendor/elm-spa-example/src/Username.elm",
"path": "../vendor/elm-spa-example/src/Username.elm",
"position": {
"row": 3,
"column": 7
Expand Down

0 comments on commit 2deb9de

Please sign in to comment.