-
Notifications
You must be signed in to change notification settings - Fork 23.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #974 from molangning/patch-checker-scripts
Fix of #939
- Loading branch information
Showing
8 changed files
with
523 additions
and
67 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains 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,45 @@ | ||
All the files here will be run by `validators.sh` as part of the check pipeline | ||
|
||
## Specifications | ||
Scripts will be passed a space separated list of files to check | ||
e.g `./script.sh "Discovery/Web-Content/trickest-robots-disallowed-wordlists/top-100.txt"` | ||
|
||
If you want your output to be parsed by the caller script, follow the below specs,else the output will be displayed raw in actions summaries | ||
|
||
## Wrapped calls | ||
|
||
### Wrapped calls checks | ||
|
||
- - - | ||
|
||
Scripts should check if its being run by the caller script. The environment variable `IS_RUNNING_UNDER_CALLER_SCRIPT` will be set to one | ||
|
||
### Wrapped calls Specifications | ||
|
||
- - - | ||
|
||
Checker scripts will now have to print out the name of the check followed by a new line | ||
|
||
Example `New line checker` | ||
|
||
This value will be used as the checker title | ||
|
||
After that, the descriptions will need to be printed out | ||
|
||
Example `To fix the error, you have to remove the empty lines or new lines at the end of the file` | ||
|
||
This is for contributors to understand why the checks failed | ||
|
||
- - - | ||
|
||
Outputs from now on will have to be in separate lines for each warnings or errors | ||
|
||
This is the format for errors | ||
|
||
Example `E,filename,line_number` | ||
|
||
In the above example, `E` stands for errors. Accepted values are `E` and `W` for errors and warnings respectively | ||
|
||
filename is the name of the file that the error comes from. | ||
|
||
line_number is the line the script detected the error in. |
This file contains 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,66 @@ | ||
#!/usr/bin/python3 | ||
|
||
import os,sys | ||
|
||
if not sys.argv[1]: | ||
exit(0) | ||
|
||
IS_WRAPPED=False | ||
|
||
if "IS_RUNNING_UNDER_CALLER_SCRIPT" in os.environ: | ||
IS_WRAPPED=os.environ['IS_RUNNING_UNDER_CALLER_SCRIPT']=="1" | ||
|
||
def print_normal(msg): | ||
|
||
if IS_WRAPPED: | ||
return | ||
print(msg) | ||
|
||
def print_err(file,line_number): | ||
|
||
if IS_WRAPPED: | ||
print("E,%s,%s"%(file,line_number)) | ||
|
||
def print_warn(file,line_number): | ||
|
||
if IS_WRAPPED: | ||
print("W,%s,%s"%(file,line_number)) | ||
|
||
print_normal("[+] Entries starting with slash checker") | ||
if IS_WRAPPED: | ||
print("Entries starting with slash check") | ||
print("The warning are more for informative purposes and does not actually serve as a check. You can ignore this.") | ||
|
||
files=sys.argv[1].split(" ") | ||
|
||
for i in files: | ||
if not os.path.isfile(i): | ||
print_err(i,0) | ||
print_normal("[!] %s does not exist!"%(i)) | ||
exit(2) | ||
|
||
pass_status=True | ||
|
||
for i in files: | ||
contents=open(i,"rb").read() | ||
counter=1 | ||
|
||
for line in contents.splitlines(): | ||
if line.startswith(b'/'): | ||
print_normal("[!] Warning: %s starts with a slash on line %i!"%(i,counter)) | ||
print_warn(i,counter) | ||
pass_status=False | ||
|
||
counter+=1 | ||
print_normal("[+] %s passed no starting slash check!"%(i)) | ||
|
||
if pass_status: | ||
print_normal("[+] All files passed checks") | ||
exit(0) | ||
|
||
print_normal("[!] Warning: One or more files failed to pass the checks") | ||
|
||
if IS_WRAPPED: | ||
exit(0) | ||
else: | ||
exit(2) |
This file contains 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,88 @@ | ||
#!/usr/bin/env python3 | ||
|
||
import os,sys | ||
|
||
if not sys.argv[1]: | ||
exit(0) | ||
|
||
IS_WRAPPED=False | ||
|
||
if "IS_RUNNING_UNDER_CALLER_SCRIPT" in os.environ: | ||
IS_WRAPPED=os.environ['IS_RUNNING_UNDER_CALLER_SCRIPT']=="1" | ||
|
||
def print_normal(msg): | ||
|
||
if IS_WRAPPED: | ||
return | ||
print(msg) | ||
|
||
def print_err(file,line_number): | ||
|
||
if IS_WRAPPED: | ||
print("E,%s,%s"%(file,line_number)) | ||
|
||
def print_warn(file,line_number): | ||
|
||
if IS_WRAPPED: | ||
print("W,%s,%s"%(file,line_number)) | ||
|
||
print_normal("[+] New line and empty line check") | ||
if IS_WRAPPED: | ||
print("New line and empty line check") | ||
print("To fix the error, you would have to remove the empty lines or new lines at the end of the file.") | ||
|
||
files=sys.argv[1].split(" ") | ||
|
||
for i in files: | ||
if not os.path.isfile(i): | ||
print_err(i,0) | ||
print_normal("[!] %s does not exist!"%(i)) | ||
exit(2) | ||
|
||
overall_pass_status=True | ||
|
||
for i in files: | ||
|
||
contents=open(i,"rb").read() | ||
line_number=len(contents.split(b'\n'))+1 | ||
|
||
if contents[-1:] == b'\n': | ||
print_normal("[!] Warning: %s ends with a new line!"%(i)) | ||
print_warn(i,line_number) | ||
overall_pass_status=False | ||
else: | ||
print_normal("[+] %s passed new line check!"%(i)) | ||
|
||
counter=1 | ||
|
||
line_pass_status=True | ||
|
||
for line in contents.splitlines(): | ||
if not line: | ||
print_normal("[!] Warning: %s has an empty entry on line %i!"%(i,counter)) | ||
print_warn(i,counter) | ||
pass_status=False | ||
line_pass_status=False | ||
continue | ||
|
||
elif not line.strip(): | ||
print_normal("[!] Warning: %s has an whitespace only entry on line %i!"%(i,counter)) | ||
print_warn(i,counter) | ||
pass_status=False | ||
line_pass_status=False | ||
continue | ||
|
||
counter+=1 | ||
if line_pass_status: | ||
print_normal("[+] %s passed empty line check!"%(i)) | ||
|
||
if overall_pass_status: | ||
print_normal("[+] All files passed checks") | ||
exit(0) | ||
|
||
print_normal("[!] Warning: One or more files failed to pass the checks") | ||
|
||
if IS_WRAPPED: | ||
exit(0) | ||
else: | ||
exit(2) |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.