CStars
CStars is a CLI tool to interact with 'Advent of Code'. Its name is inspired by the traditional german christmas sweet, cinnamon stars, as well as the awesome phonetic.
## Usage
The `clap` crate generates an awesome help page, so try `cstars help`.
```
cstars 0.1.0
Lasse Haffke
Interact with Advent of Code from the command-line
USAGE:
cstars [OPTIONS]
OPTIONS:
-h, --help Print help information
-v, --verbose Turn debugging information on
-V, --version Print version information
SUBCOMMANDS:
config Print the used configuration
get Get a specific information for a date
help Print this message or the help of the given subcommand(s)
submit Submit an answer for a date
```
The main feature is the `get` subcommand. With this, the puzzle input, description and star count can be requested.
```
cstars-get
Get a specific information for a date
USAGE:
cstars get
OPTIONS:
-h, --help Print help information
SUBCOMMANDS:
description Get the description for a specific date
help Print this message or the help of the given subcommand(s)
input Get the input for a specific date
star-count Get the completed puzzle parts for a specific date
```
Each subcommand has different options, so make sure to use the help subcommand.
## Caching
All successful requests to the website are cached.
These includes all `get` requests and `submit` requests from the respective subcommands.
The cache can be found at the `config.cache_dir`. It is kept in plain text.
## Configuration
`CStars` allows for some configuration.
It uses the `directories` crate to discover the configuration file.
Check the crate's documentation for all valid [options](https://github.com/dirs-dev/directories-rs#projectdirs).
Append `cstars.toml` to the configuration directory determined by `directories` to get the final file location.
One possible example location on Linux system is `$HOME/.config/cstars/cstars.toml`.
### Possible configuration
Configuration options are:
| option | description | default |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------- |
| `session_cookie_retrieval_command` | Advent of code requires a cookie to authenticate your account. To avoid storing it in clear text, put a command here to retrieve it. | `cat secret.txt` |
| `cache_dir` | Directory to set up the caching in. If this directory is not writable `cstars` will panic! | check `directories` crate |
## Contributing
This is my first major Rust project, so feel free to contribute anything via pull requests and issues.