"replace": False,
"backup": False,
"skipstatichosts": False,
- "keepdomaincomments": False,
+ "keepdomaincomments": True,
"extensionspath": "foo" + self.sep + "extensions",
"extensions": [],
"compress": False,
self.assertEqual(output, line)
def test_strip_more_than_two(self):
+ comment = " # comments here galore"
+
for line in ["0.0.0.0 twitter.com", "127.0.0.1 facebook.com",
"8.8.8.8 google.com", "1.2.3.4 foo.bar.edu"]:
- output = strip_rule(line + " # comments here galore")
- self.assertEqual(output, line)
+ output = strip_rule(line + comment)
+ self.assertEqual(output, line + comment)
class TestWriteOpeningHeader(BaseMockDir):
"replace": False,
"backup": False,
"skipstatichosts": False,
- "keepdomaincomments": False,
+ "keepdomaincomments": True,
"extensionspath": path_join_robust(BASEDIR_PATH, "extensions"),
"extensions": [],
"compress": False,
parser.add_argument("--ip", "-i", dest="targetip", default="0.0.0.0",
help="Target IP address. Default is 0.0.0.0.")
parser.add_argument("--keepdomaincomments", "-k",
- dest="keepdomaincomments", default=False,
- help="Keep domain line comments.")
+ dest="keepdomaincomments", action="store_false", default=True,
+ help="Do not keep domain line comments.")
parser.add_argument("--noupdate", "-n", dest="noupdate", default=False,
action="store_true", help="Don't update from "
"host data sources.")
rule = "%s %s" % (target_ip, hostname)
if suffix and keep_domain_comments:
- rule += " #%s" % suffix
+ if not suffix.strip().startswith('#'):
+ rule += " #%s" % suffix
+ else:
+ rule += " %s" % suffix
return hostname, rule + "\n"
rule = "%s %s" % (target_ip, ip_host)
if suffix and keep_domain_comments:
- rule += " #%s" % suffix
+ if not suffix.strip().startswith('#'):
+ rule += " #%s" % suffix
+ else:
+ rule += " %s" % suffix
return ip_host, rule + "\n"
"""
Sanitize a rule string provided before writing it to the output hosts file.
- Some sources put comments around their rules, for accuracy we need
- to strip them the comments are preserved in the output hosts file.
-
Parameters
----------
line : str
# just return blank
return ""
else:
- return split_line[0] + " " + split_line[1]
+ return " ".join(split_line)
def write_opening_header(final_file, **header_params):