-
Notifications
You must be signed in to change notification settings - Fork 76
Added custom pre-commit hook #2499
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
hrishi-1337
wants to merge
7
commits into
mozilla:master
Choose a base branch
from
hrishi-1337:custom-hook
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+50
−0
Open
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
a5c70b2
Added custom pre-commit hook
hrishi-1337 bbacfa6
Make JSON indentation check script executable
hrishi-1337 0a097c5
Update .taskcluster.yml
hrishi-1337 0e2c0b3
Readded tox.ini
hrishi-1337 ae392b0
Merge branch 'master' into custom-hook
hrishi-1337 b966cca
Merge branch 'master' into custom-hook
hrishi-1337 f38ed49
Remove pip install for requirements-test.txt
hrishi-1337 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| - id: check-json-indentation | ||
| name: Check JSON Indentation Consistency | ||
| description: This hook checks that JSON files do not have mixed tabs and spaces for indentation. | ||
| entry: pre-commit/check_json_indentation.py | ||
| language: python | ||
| files: \.json$ | ||
| types: [text] | ||
| verbose: true |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why do we need to create a custom hook? Have you tried finding an off-the-shelf solution? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| #!/usr/bin/env python3 | ||
| import sys | ||
|
|
||
|
|
||
| def check_json_indentation(filename): | ||
| with open(filename, "r") as file: | ||
| lines = file.readlines() | ||
|
|
||
| tabs_found = False | ||
| spaces_found = False | ||
|
|
||
| for line in lines: | ||
| stripped_line = line.lstrip() | ||
| if stripped_line and line.startswith("\t"): | ||
| tabs_found = True | ||
| elif stripped_line and line.startswith(" "): | ||
| spaces_found = True | ||
|
|
||
| if tabs_found and spaces_found: | ||
| print(f"Error: {filename} contains mixed tabs and spaces for indentation.") | ||
| return False | ||
|
|
||
| return True | ||
|
|
||
|
|
||
| if __name__ == "__main__": | ||
| files_to_check = sys.argv[1:] | ||
| exit_code = 0 | ||
|
|
||
| for json_file in files_to_check: | ||
| if not check_json_indentation(json_file): | ||
| exit_code = 1 | ||
|
|
||
| sys.exit(exit_code) |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If there isn't an existing hook for this, it would be simpler to use an inline pygrep hook.