To contribute a sample error message that help50
does yet support, open an issue and provide, ideally, both the error message and the command (and code, if any) that triggered it, both formatted in Markdown like code.
Better yet, to contribute to a helper for foo
, implement helpers/foo.py
per the below, where lines
will be an array of strings (i.e., lines of stderr
and/or stdout
potentially from foo
) for which user needs help, n
must be a number of lines
that this helper has matched on, and response
must be an array of strings that help user understand the first n
lines of lines
. Helper must return None
if it does not recognize lines[0]
. Only if helper recognizes lines[0]
may it look at lines[1:]
.
import re
def help(lines):
...
# if helper recognizes lines[0]
...
return (n, response)
Here are open issues if you'd like to solve one or more!
- Install Docker Engine
- If running Ubuntu, also install the latest version of Docker Compose
- Execute
docker-compose build
in a terminal - Execute
docker-compose up
in a terminal
The provided docker-compose.yml
will "mount" the repository within the container (at /srv/www
) so that you can make changes to files locally that will be reflected inside the container.
For a shell within the container, execute
docker exec -it help50_web bash -l
after the container has been started (with docker-compose up
).
Visit http://localhost:8080/
in a browser
Assuming a container is running and listening at http://localhost:8080/
and you're inside of the container (via docker exec -it help50_web bash -l
):
help50 ./foo
help50 make foo
help50 clang -o foo foo.c
./foo |& help50
make foo |& help50
clang -o foo foo.c |& help50
- Get ANSI codes to work in server-side
.ans
templates. - Decide whether server should return
before
for.ans
(and.txt
) templates. - Replace backticks with ANSI boldfacing, a la https://github.com/cs50/help50/blob/php/malan/test.sh?
- When helpers fail to match first few lines of
script
(e.g.,examples/c/0.c
), don't just show the matched lines asbefore
, show preceding lines too? - Create
client
andserver
subdirectories? But Elastic Beanstalk might only look in root of repo. - Add support for usernames and hearts via a MySQL database.
- Create tests (that get executed before deployment).