# README
elf - a helper for trivial things
`elf`` is a helper app for several programming practice sites that attempts to reduce the overhead needed to test and solve puzzles.
Currently supporting:
- Advent of Code
- WIP Project Euler
- WIP Exercism
Features
Download
challenge information with local cachingSolve
challenge with multiple language implementationsTest
solution with implementation-agnostic test cases- Show debug output inline with solution output
- Write
visualization
for solutions to disk Benchmark
with graphs to compare implementations
Demo
TBD
Requirements
See site-specific sections for details on unique requirements.
- Toolchain must be maintained separately (compiler installation, etc.)
- Site-specific authorization may need to be set in config file or ENV
Install
Manually download and unpack the elf binary into your preferred location.
Configuration
The default location for this data may vary based on OS and personal settings.
- Windows:
%AppData%/elf
- Unix:
$XDG_CONFIG_HOME/elf
(if non-empty), else$HOME/.config/elf
- Darwin:
$HOME/Library/Application Support/elf
Site-specific details
Advent of Code
.
└─ exercises
└─ <year>
└─ <day>-<title>
├─ go
│ └─ exercise.go
├─ info.json
├─ input.txt
├─ README.md
└─ benchmark.json
Caching
Elf caches downloaded information from source sites to reduce load on their servers. The default location for this data may vary based on OS and personal settings.
- Windows:
%AppData%/elf
- *nix:
$XDG_CONFIG_HOME/elf
(if non-empty), else$HOME/.config/elf
- Darwin:
$HOME/Library/Application Support/elf
Build
Build scripts use Task. There is a Makefile and justfile with similar arguments. These may be removed at some point though.
Install the necessary dependencies with task install
. This should only be necessary to do once.
task snapshot
will create a local build for your OS in ./dist/elf-<OS name>/
.