dotfiles/mozilla/ff/QuickPrefsParser.py

40 lines
1.5 KiB
Python

def format_prefs(input_string):
# Split the input string by newlines to get individual lines
lines = input_string.strip().split('\n')
formatted_lines = []
for line in lines:
# Split each line by space to separate the key and value
parts = line.split(' ')
key = parts[0]
value = ' '.join(parts[1:])
# Format the value correctly based on its type
if value in ('true', 'false'):
formatted_value = value.lower() # Keep booleans lowercase
elif value.isdigit():
formatted_value = value # Keep integers as is
else:
# Wrap strings in quotes, unless they are already wrapped
formatted_value = value if value.startswith('"') and value.endswith('"') else f'"{value}"'
# Create the formatted preference string
formatted_line = f'user_pref("{key}", {formatted_value});'
formatted_lines.append(formatted_line)
# Join the formatted lines back together with newlines
return '\n'.join(formatted_lines)
# Example usage:
input_string = """
browser.safebrowsing.malware.enabled false
browser.safebrowsing.phishing.enabled false
browser.safebrowsing.downloads.enabled false
browser.safebrowsing.downloads.remote.enabled false
browser.safebrowsing.downloads.remote.url ""
browser.safebrowsing.downloads.remote.block_potentially_unwanted false
browser.safebrowsing.downloads.remote.block_uncommon false
browser.safebrowsing.allowOverride false
"""
print(format_prefs(input_string))