# rss-email
Fetch new RSS (and Atom) feed items and send them via E-Mail.
## Installation
### Alpine Linux
A package for Alpine Linux exists in the `testing` repository:
[rss-email](https://pkgs.alpinelinux.org/package/edge/testing/x86_64/rss-email)
### Arch Linux
There are 2 packages available in the AUR:
- [rss-email](https://aur.archlinux.org/packages/rss-email)
- [rss-email-git](https://aur.archlinux.org/packages/rss-email-git)
## Compiling
Install the dependencies:
- Rust
- sqlite
- [sqlx-cli](https://github.com/launchbadge/sqlx/tree/main/sqlx-cli#install)
(optional, only for development)
- scdoc
First specify the `DATABASE_URL` environment variable and set up the database
with `cargo-sqlx`:
```
export DATABASE_URL='sqlite://./dev.db'
cargo sqlx database setup
```
Then compile `rss-email`:
```
cargo build
```
To build the man pages, use `scdoc`:
```
scdoc < docs/rss-email.1.scd > docs/rss-email.1
scdoc < docs/rss-email.5.scd > docs/rss-email.5
```
## Usage
- Copy the `config.example.toml` to `~/.config/rss-email/config.toml` and adjust
the values
- Create a `urls` file at `~/.config/rss-email/urls` with one RSS url per line
The database used with `rss-email` is generated automatically if it doesn't exist
yet
See the man page or `-h` for more info. You can view the man page after
generating it with `scdoc` with `man -l docs/rss-email.1`.
A man page for the configuration exists, too, which you can view after building
with `scdoc`: `man -l doc/rss-email.5`.
## Resources
Send patches and questions to
[~witcher/rss-email-devel@lists.sr.ht](https://lists.sr.ht/~witcher/rss-email-devel).
Instructions for preparing a patch are available at
[git-send-email.io](https://git-send-email.io/).
Bugs and todo can be found at
[~witcher/rss-email](https://todo.sr.ht/~witcher/rss-email).
# Contributing
## git hooks
A `pre-commit` hook is available in `contrib/githooks/pre-commit` that catches
most errors that the CI fail on. I recommend installing it in
`.git/hooks/pre-commit` to catch errors before the CI can since building Rust in
the CI is quite expensive.
## Making changes on the database
When making changes on the database, make sure that:
- a migration is created in the `migrations` folder with `cargo sqlx migrate add
-r $MIGRATION_DESCRIPTION`
- `sqlx-data.json` is up to date by issuing `cargo sqlx prepare`