rlwrap -z './logger.py -l logger.log' telnet """ import os import sys if 'RLWRAP_FILTERDIR' in os.environ: sys.path.append(os.environ['RLWRAP_FILTERDIR']) else: sys.path.append('.') import rlwrapfilter import argparse import re filter = rlwrapfilter.RlwrapFilter() parser = argparse.ArgumentParser() parser.add_argument('--logfile', '-l', nargs='?', type=argparse.FileType('a'), default=open("/tmp/filterlog." + str(os.getpid()), mode='a')) args = parser.parse_args() fd = args.logfile # a message_handler is seldom used (as it cannot change messages, only examine them) # It gets called with the tag as its second argument def logit(message, tag): tagname = filter.tag2name(tag) tagname = re.sub(r'^TAG_', '', tagname) mangled = message
#!/usr/bin/env python3 """a demo for doing nothing""" import sys import os if 'RLWRAP_FILTERDIR' in os.environ: sys.path.append(os.environ['RLWRAP_FILTERDIR']) else: sys.path.append('.') import rlwrapfilter filter = rlwrapfilter.RlwrapFilter() filter.help_text = "Usage: rlwrap [-options] -z null.py <command>\n"\ + "a filter that does nothing" filter.run()
""" a demo for completing paths in sh wrapperd shell Usage: rlwrap -z './sh_file_completion.py' sh """ import os import sys import shlex import rlwrapfilter def get_files_by_prefix(path): command = "ls -dp1 -- %s* 2>/dev/null" % shlex.quote(path) output = filter.cloak_and_dagger(command, "\$ ", 1) return output.replace('\r', '').split('\n') def completion_handler(line, path, completion_list): return get_files_by_prefix(path) filter = rlwrapfilter.RlwrapFilter(completion_handler=completion_handler) filter.set_completion_list_options(word_break_chars=[ ' ', '\t', '\n', '\"', '\\', '`', '@' '$', '>', '<', '=', ';', '|', '&', '{', '(' ]) filter.run()