Mercurial > repo
view bin/whatis @ 12296:042127c1c142 draft
<fizzie> ` rm /hackenv/bin/bfi; ln -s /hackenv/lib/kps/bfi /hackenv/bin/bfi # no need for actual copies that you can forget to delete though
author | HackEso <hackeso@esolangs.org> |
---|---|
date | Sat, 04 Jan 2020 13:28:36 +0000 |
parents | 44379732c06b |
children |
line wrap: on
line source
#!/usr/bin/python3 import sys, os, re if len(sys.argv) <= 1: print("whatis what?") sys.exit(1) else: argorg = [] argfoldv = [] foundv = [] for arg in sys.argv[1:]: argorg.append(arg) argfoldv.append(arg.casefold()) foundv.append(False) with open(os.environ.get("HACKENV","/hackenv") + "/share/whatis", errors="surrogateescape") as whatisdb: for line in whatisdb: parts = re.match(r"([^()]+)\(([0-9A-Z_a-z])([0-9A-Z_a-z]*)\)", line) if parts: match = False for argind, argfold in enumerate(argfoldv): if (argfold == parts.group(1).casefold() or argfold == parts.group(1) + "(" + parts.group(2) + parts.group(3) + ")" or argfold == parts.group(1) + "(" + parts.group(3) + ")") \ : match = True foundv[argind] = True if match: print(line, end="") for arg, found in zip(argorg, foundv): if not found: print(arg + ": nothing appropriate.")