""" Input transformer that automatically quotes #s for e.g. nix. """ from xonsh.events import events @events.on_transform_command def _autoquote_for_nix(cmd): new_command = [] # Process each word individually. words = cmd.strip().split(" ") for word in words: # If this is unquoted, and it has a comment in it without spaces, # consider it something that we should auto-quote. has_comment = '#' in word is_comment = word.startswith("#") is_quoted = ('"' in word) or ("'" in word) if has_comment and not is_comment and not is_quoted: word = '"' + word + '"' new_command.append(word) # Reconstruct our command. return " ".join(new_command) + "\n"