62 lines
1.7 KiB
Python
Executable File
62 lines
1.7 KiB
Python
Executable File
#!/usr/bin/python3
|
|
|
|
import argparse
|
|
from pathlib import Path
|
|
|
|
|
|
directorys: list[str] = [
|
|
"/etc/netplan/",
|
|
"/etc/NetworkManager/system-connections/",
|
|
"/var/lib/NetworkManager/user-connections/",
|
|
]
|
|
|
|
|
|
def search_string_in_directory(
|
|
directories: list[str] = directorys, # Use the predefined list as default
|
|
search_string: str = "", # Default is empty string
|
|
) -> bool:
|
|
|
|
if len(search_string) == 0:
|
|
return False
|
|
|
|
result = False
|
|
for directory in directories:
|
|
in_paths = Path(directory)
|
|
if not in_paths.exists() or not in_paths.is_dir():
|
|
continue
|
|
|
|
files = [file for file in in_paths.iterdir() if file.is_file()]
|
|
if not files:
|
|
continue
|
|
|
|
# Search for the string in each file
|
|
for file in files:
|
|
try:
|
|
with open(file, "r", errors="ignore") as f:
|
|
for line in f:
|
|
if search_string in line:
|
|
result = True # String found
|
|
break
|
|
if result:
|
|
break # No need to check further
|
|
except Exception:
|
|
continue # Skip files that cause errors
|
|
|
|
# Invert the logic: return False if string is found, True otherwise
|
|
return result
|
|
|
|
|
|
def main() -> bool:
|
|
parser = argparse.ArgumentParser(
|
|
description="Script only for use to compare the private key in the Network configurations to avoid errors with the network manager."
|
|
)
|
|
parser.add_argument("search_string", help="Search string")
|
|
args = parser.parse_args()
|
|
|
|
result = search_string_in_directory(search_string=args.search_string)
|
|
print(result)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|