An offset of 7 was hardcoded in the function compress_file, presumably
to skip over the default target IP address of 0.0.0.0 in a hosts file.
However, this causes problems when the default is overridden using the
--ip or -i flag, causing visibly garbled output in the generated hosts
file.
Fix is to calculate the length of target IP at runtime.
input_file.seek(0) # reset file pointer
write_data(output_file, '\n')
+ target_ip_len = len(target_ip)
lines = [target_ip]
lines_index = 0
for line in input_file.readlines():
if line.startswith(target_ip):
if lines[lines_index].count(' ') < 9:
- lines[lines_index] += ' ' + line[7:line.find('#')].strip()
+ lines[lines_index] += ' ' \
+ + line[target_ip_len:line.find('#')].strip()
else:
lines[lines_index] += '\n'
lines.append(line[:line.find('#')].strip())