[arm/master] Dropping unused tor_config functions

commit ee7dc7de5faa1b34f1055e59d18f1bf918b5aa16 Author: Damian Johnson <atagar@torproject.org> Date: Sat Jan 18 21:34:50 2014 -0800 Dropping unused tor_config functions Primarily a function that generated a torrc from a template. This is something I wrote for our setup wizard which, while actually pretty neat, was unused and now removed. Nothing's using these functions so might as well drop 'em. --- arm/util/tor_config.py | 185 ------------------------------------------------ 1 file changed, 185 deletions(-) diff --git a/arm/util/tor_config.py b/arm/util/tor_config.py index 46db391..84d2882 100644 --- a/arm/util/tor_config.py +++ b/arm/util/tor_config.py @@ -1041,191 +1041,6 @@ class Torrc(): log.warn(msg) -def _test_config_descriptions(): - """ - Tester for the load_option_descriptions function, fetching the man page - contents and dumping its parsed results. - """ - - load_option_descriptions() - sorted_options = CONFIG_DESCRIPTIONS.keys() - sorted_options.sort() - - for i in range(len(sorted_options)): - option = sorted_options[i] - argument, description = get_config_description(option) - opt_label = "OPTION: \"%s\"" % option - arg_label = "ARGUMENT: \"%s\"" % argument - - print " %-45s %s" % (opt_label, arg_label) - print "\"%s\"" % description - - if i != len(sorted_options) - 1: - print "-" * 80 - - -def is_root_needed(torrc_path): - """ - Returns True if the given torrc needs root permissions to be ran, False - otherwise. This raises an IOError if the torrc can't be read. - - Arguments: - torrc_path - torrc to be checked - """ - - try: - torrc_file = open(torrc_path, "r") - torrc_lines = torrc_file.readlines() - torrc_file.close() - - for line in torrc_lines: - line = line.strip() - - is_port_opt = False - - for opt in PORT_OPT: - if line.startswith(opt): - is_port_opt = True - break - - if is_port_opt and " " in line: - arg = line.split(" ")[1] - - if arg.isdigit() and int(arg) <= 1024 and int(arg) != 0: - return True - - return False - except Exception as exc: - raise IOError(exc) - - -def render_torrc(template, options, comment_indent = 30): - """ - Uses the given template to generate a nicely formatted torrc with the given - options. The tempating language this recognizes is a simple one, recognizing - the following options: - [IF <option>] # if <option> maps to true or a non-empty string - [IF NOT <option>] # logical inverse - [IF <opt1> | <opt2>] # logical or of the options - [ELSE] # if the prior conditional evaluated to false - [END IF] # ends the control block - - [<option>] # inputs the option value, omitting the line if it maps - # to a boolean or empty string - [NEWLINE] # empty line, otherwise templating white space is ignored - - Arguments: - template - torrc template lines used to generate the results - options - mapping of keywords to their given values, with values - being booleans or strings (possibly multi-line) - comment_indent - minimum column that comments align on - """ - - results = [] - template_iter = iter(template) - comment_line_format = "%%-%is%%s" % comment_indent - - try: - while True: - line = template_iter.next().strip() - - if line.startswith("[IF ") and line.endswith("]"): - # checks if any of the conditional options are true or a non-empty string - - evaluates_true = False - - for cond in line[4:-1].split("|"): - is_inverse = False - - if cond.startswith("NOT "): - is_inverse = True - cond = cond[4:] - - if is_inverse != bool(options.get(cond.strip())): - evaluates_true = True - break - - if evaluates_true: - continue - else: - # skips lines until we come to an else or the end of the block - depth = 0 - - while depth != -1: - line = template_iter.next().strip() - - if line.startswith("[IF ") and line.endswith("]"): - depth += 1 - elif line == "[END IF]": - depth -= 1 - elif depth == 0 and line == "[ELSE]": - depth -= 1 - elif line == "[ELSE]": - # an else block we aren't using - skip to the end of it - depth = 0 - - while depth != -1: - line = template_iter.next().strip() - - if line.startswith("[IF "): - depth += 1 - elif line == "[END IF]": - depth -= 1 - elif line == "[NEWLINE]": - # explicit newline - results.append("") - elif line.startswith("#"): - # comment only - results.append(line) - elif line.startswith("[") and line.endswith("]"): - # completely dynamic entry - - opt_value = options.get(line[1:-1]) - - if opt_value: - results.append(opt_value) - else: - # torrc option line - - option, arg, comment = "", "", "" - parsed_line = line - - if "#" in parsed_line: - parsed_line, comment = parsed_line.split("#", 1) - parsed_line = parsed_line.strip() - comment = "# %s" % comment.strip() - - # parses the argument from the option - - if " " in parsed_line.strip(): - option, arg = parsed_line.split(" ", 1) - option = option.strip() - else: - log.info("torrc template option lacks an argument: '%s'" % line) - continue - - # inputs dynamic arguments - - if arg.startswith("[") and arg.endswith("]"): - arg = options.get(arg[1:-1]) - - # skips argument if it's false or an empty string - - if not arg: - continue - - torrc_entry = "%s %s" % (option, arg) - - if comment: - results.append(comment_line_format % (torrc_entry + " ", comment)) - else: - results.append(torrc_entry) - except StopIteration: - pass - - return "\n".join(results) - - def load_configuration_descriptions(path_prefix): """ Attempts to load descriptions for tor's configuration options, fetching them
participants (1)
-
atagar@torproject.org