| |
|
|
| |
| |
| |
| |
|
|
| from __future__ import print_function |
|
|
| import argparse |
| import subprocess |
| import sys |
|
|
|
|
| def print_failure(msg): |
| """ |
| Print a failure message. |
| |
| Parameters |
| ---------- |
| msg : str |
| The failure message to print. |
| """ |
|
|
| print("\033[91m" + msg + "\033[0m") |
|
|
|
|
| def update_hosts_file(*flags): |
| """ |
| Wrapper around running updateHostsFile.py |
| |
| Parameters |
| ---------- |
| flags : varargs |
| Commandline flags to pass into updateHostsFile.py. For more info, run |
| the following command in the terminal or command prompt: |
| |
| ``` |
| python updateHostsFile.py -h |
| ``` |
| """ |
|
|
| if subprocess.call([sys.executable, "updateHostsFile.py"] + list(flags)): |
| print_failure("Failed to update hosts file") |
|
|
|
|
| def update_readme_file(): |
| """ |
| Wrapper around running updateReadme.py |
| """ |
|
|
| if subprocess.call([sys.executable, "updateReadme.py"]): |
| print_failure("Failed to update readme file") |
|
|
|
|
| def recursively_loop_extensions(extension, extensions, current_extensions): |
| """ |
| Helper function that recursively calls itself to prevent manually creating |
| all possible combinations of extensions. |
| |
| Will call update_hosts_file for all combinations of extensions |
| """ |
|
|
| c_extensions = extensions.copy() |
| c_current_extensions = current_extensions.copy() |
| c_current_extensions.append(extension) |
|
|
| name = "-".join(c_current_extensions) |
|
|
| params = ("-a", "-n", "-o", "alternates/"+name, "-e") + tuple(c_current_extensions) |
| update_hosts_file(*params) |
|
|
| params = ("-a", "-n", "-s", "--nounifiedhosts", "-o", "alternates/"+name+"-only", "-e") + tuple(c_current_extensions) |
| update_hosts_file(*params) |
|
|
| while len(c_extensions) > 0: |
| recursively_loop_extensions(c_extensions.pop(0), c_extensions, c_current_extensions) |
|
|
|
|
| def main(): |
| parser = argparse.ArgumentParser( |
| description="Creates custom hosts " |
| "file from hosts stored in " |
| "data subfolders." |
| ) |
| parser.parse_args() |
|
|
| |
| update_hosts_file("-a") |
|
|
| |
| |
| extensions = ["fakenews", "gambling", "porn", "social"] |
|
|
| while len(extensions) > 0: |
| recursively_loop_extensions(extensions.pop(0), extensions, []) |
|
|
| |
| update_readme_file() |
|
|
|
|
| if __name__ == "__main__": |
| main() |
|
|