-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
1,018 additions
and
0 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
# Contributing guide | ||
|
||
Thank you for investing your time in contributing to Himalaya REPL! | ||
|
||
## Development | ||
|
||
The development environment is managed by [Nix](https://nixos.org/download.html). Running `nix-shell` will spawn a shell with everything you need to get started with the lib: `cargo`, `cargo-watch`, `rust-bin`, `rust-analyzer`, `notmuch`… | ||
|
||
```sh | ||
# Start a Nix shell | ||
$ nix-shell | ||
|
||
# then build the REPL | ||
$ cargo build | ||
|
||
# run the REPL | ||
$ cargo run --feature pgp-gpg | ||
``` | ||
|
||
## Contributing | ||
|
||
Himalaya REPL supports open-source, hence the choice of using [SourceHut](https://sourcehut.org/) for managing the project. The only reason why the source code is hosted on GitHub is to build releases for all major platforms (using GitHub Actions). Don't worry, contributing on SourceHut is not a big deal: you just need to send emails! You don't need to create any account. Here a small comparison guide with GitHub: | ||
|
||
The equivalent of **GitHub Discussions** are: | ||
|
||
- The [Matrix](https://matrix.org/) chat room [#pimalaya.himalaya](https://matrix.to/#/#pimalaya.himalaya:matrix.org) | ||
- The SourceHut mailing list. You can consult existing messages [here](https://lists.sr.ht/~soywod/pimalaya). You can "open a new discussion" by sending an email at [~soywod/pimalaya@lists.sr.ht](mailto:~soywod/pimalaya@lists.sr.ht). You can also [subscribe](mailto:~soywod/pimalaya+subscribe@lists.sr.ht) and [unsubscribe](mailto:~soywod/pimalaya+unsubscribe@lists.sr.ht) to the mailing list, so you can receive a copy of all discussions. | ||
|
||
The equivalent of **GitHub Issues** is the SourceHut bug tracker. You can consult existing bugs [here](https://todo.sr.ht/~soywod/pimalaya), and you can "open a new issue" by sending an email at [~soywod/pimalaya@todo.sr.ht](mailto:~soywod/pimalaya@todo.sr.ht). | ||
|
||
The equivalent of **GitHub Pull requests** is the SourceHut mailing list. You can "open a new pull request" by sending an email containing a git patch at [~soywod/pimalaya@lists.sr.ht](mailto:~soywod/pimalaya@lists.sr.ht). The simplest way to send a patch is to use [git send-email](https://git-scm.com/docs/git-send-email), follow [this guide](https://git-send-email.io/) to configure git properly. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
MIT License | ||
|
||
Copyright (c) 2024 soywod <clement.douin@posteo.net> | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# 📫 Himalaya REPL [![GitHub release](https://img.shields.io/github/v/release/soywod/himalaya-repl?color=success)](https://github.com/soywod/himalaya-repl/releases/latest) [![Matrix](https://img.shields.io/matrix/pimalaya.himalaya:matrix.org?color=success&label=chat)](https://matrix.to/#/#pimalaya.himalaya:matrix.org) | ||
|
||
Welcome to [**Himalaya REPL**](https://pimalaya.org/himalaya/repl/latest/), the Read, Evaluate, Print, and Loop interface to manage emails based on [email-lib](https://crates.io/crates/email-lib). | ||
|
||
*Work In Progress, stay tuned!* | ||
|
||
## Contributing | ||
|
||
*Please read the [contributing guide](https://github.com/soywod/himalaya-repl/blob/master/CONTRIBUTING.md) for more detailed information.* | ||
|
||
A **bug tracker** is available on [SourceHut](https://todo.sr.ht/~soywod/pimalaya). <sup>[[send an email](mailto:~soywod/pimalaya@todo.sr.ht)]</sup> | ||
|
||
A **mailing list** is available on [SourceHut](https://lists.sr.ht/~soywod/pimalaya). <sup>[[send an email](mailto:~soywod/pimalaya@lists.sr.ht)] [[subscribe](mailto:~soywod/pimalaya+subscribe@lists.sr.ht)] [[unsubscribe](mailto:~soywod/pimalaya+unsubscribe@lists.sr.ht)]</sup> | ||
|
||
If you want to **report a bug**, please send an email at [~soywod/pimalaya@todo.sr.ht](mailto:~soywod/pimalaya@todo.sr.ht). | ||
|
||
If you want to **propose a feature** or **fix a bug**, please send a patch at [~soywod/pimalaya@lists.sr.ht](mailto:~soywod/pimalaya@lists.sr.ht). The simplest way to send a patch is to use [git send-email](https://git-scm.com/docs/git-send-email), follow [this guide](https://git-send-email.io/) to configure git properly. | ||
|
||
If you just want to **discuss** about the project, feel free to join the [Matrix](https://matrix.org/) workspace [#pimalaya.himalaya](https://matrix.to/#/#pimalaya.himalaya:matrix.org) or contact me directly [@soywod](https://matrix.to/#/@soywod:matrix.org). You can also use the mailing list. | ||
|
||
## Sponsoring | ||
|
||
[![nlnet](https://nlnet.nl/logo/banner-160x60.png)](https://nlnet.nl/project/Himalaya/index.html) | ||
|
||
Special thanks to the [NLnet foundation](https://nlnet.nl/project/Himalaya/index.html) and the [European Commission](https://www.ngi.eu/) that helped the project to receive financial support from: | ||
|
||
- [NGI Assure](https://nlnet.nl/assure/) in 2022 | ||
- [NGI Zero Entrust](https://nlnet.nl/entrust/) in 2023 | ||
|
||
If you appreciate the project, feel free to donate using one of the following providers: | ||
|
||
[![GitHub](https://img.shields.io/badge/-GitHub%20Sponsors-fafbfc?logo=GitHub%20Sponsors)](https://github.com/sponsors/soywod) | ||
[![PayPal](https://img.shields.io/badge/-PayPal-0079c1?logo=PayPal&logoColor=ffffff)](https://www.paypal.com/paypalme/soywod) | ||
[![Ko-fi](https://img.shields.io/badge/-Ko--fi-ff5e5a?logo=Ko-fi&logoColor=ffffff)](https://ko-fi.com/soywod) | ||
[![Buy Me a Coffee](https://img.shields.io/badge/-Buy%20Me%20a%20Coffee-ffdd00?logo=Buy%20Me%20A%20Coffee&logoColor=000000)](https://www.buymeacoffee.com/soywod) | ||
[![Liberapay](https://img.shields.io/badge/-Liberapay-f6c915?logo=Liberapay&logoColor=222222)](https://liberapay.com/soywod) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
# The account name. | ||
[accounts.example] | ||
|
||
# The current account will be used by default for all other commands. | ||
default = true | ||
|
||
# The display-name and the email are used to build the full email | ||
# address: "My example account" <example@localhost> | ||
display-name = "My example account" | ||
email = "example@localhost" | ||
|
||
# The signature can be a string or a path to a file. | ||
signature = "Regards," | ||
signature-delim = "-- \n" | ||
|
||
# Enable the synchronization for this account. Running the command | ||
# `account sync example` will synchronize all folders and all emails | ||
# to a local Maildir at `$XDG_DATA_HOME/himalaya/example`. | ||
sync.enable = false | ||
|
||
# Override the default Maildir path for synchronization. | ||
sync.dir = "/tmp/himalaya-sync-example" | ||
|
||
# Filter folders to sync | ||
folder.sync.filter.include = ["INBOX"] | ||
# folder.sync.filter.exclude = ["All mails"] | ||
# folder.sync.filter = "all" | ||
|
||
# Define main folder aliases | ||
folder.alias.inbox = "INBOX" | ||
folder.alias.sent = "Sent" | ||
folder.alias.drafts = "Drafts" | ||
folder.alias.trash = "Trash" | ||
|
||
# Also define custom folder aliases | ||
folder.alias.prev-year = "Archives/2023" | ||
|
||
# Default backend used for all the features like adding folders, | ||
# listing envelopes or copying messages. | ||
backend = "imap" | ||
|
||
envelope.list.page-size = 10 | ||
envelope.list.datetime-fmt = "%F %R%:z" | ||
|
||
# Date are converted to the user's local timezone. | ||
envelope.list.datetime-local-tz = true | ||
|
||
# Override the backend used for listing envelopes. | ||
# envelope.list.backend = "imap" | ||
|
||
# Send notification on receiving new envelopes | ||
envelope.watch.received.notify.summary = "📬 New message from {sender}" | ||
|
||
# Available placeholders: id, subject, sender, sender.name, | ||
# sender.address, recipient, recipient.name, recipient.address. | ||
envelope.watch.received.notify.body = "{subject}" | ||
|
||
# Shell commands can also be executed when envelopes change | ||
# envelope.watch.any.cmd = "mbsync -a" | ||
|
||
# Override the backend used for sending messages. | ||
message.send.backend = "smtp" | ||
|
||
# Save a copy of sent messages to the sent folder. | ||
message.send.save-copy = false | ||
|
||
# IMAP config | ||
imap.host = "localhost" | ||
imap.port = 3143 | ||
imap.login = "example@localhost" | ||
|
||
# Encryption can be either "tls" (or true), "start-tls" or "none" (or false). | ||
imap.encryption = "none" | ||
|
||
# Get password from a raw string (not safe) | ||
imap.passwd.raw = "password" | ||
|
||
# Get password from a shell command | ||
# imap.passwd.cmd = "echo password" | ||
|
||
# Get password from your global system keyring using secret service | ||
# Keyring secrets can be (re)set with the command `account configure example` | ||
# imap.passwd.keyring = "example-imap-password" | ||
|
||
# Customize at which period, in seconds, the IMAP IDLE mode should refresh. | ||
# Defaults to 1740 (29 min), as defined in the RFC. | ||
# imap.watch.timeout = 25 | ||
|
||
# SMTP config | ||
smtp.host = "localhost" | ||
smtp.port = 3025 | ||
smtp.login = "example@localhost" | ||
smtp.encryption = false | ||
smtp.passwd.raw = "password" | ||
|
||
# PGP needs to be enabled with one of those cargo feature: | ||
# pgp-commands, pgp-gpg or pgp-native | ||
# pgp.backend = "gpg" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# This file exists for legacy Nix installs (nix-build & nix-env) | ||
# https://nixos.wiki/wiki/Flakes#Using_flakes_project_from_a_legacy_Nix | ||
# You generally do *not* have to modify this ever. | ||
(import ( | ||
let | ||
lock = builtins.fromJSON (builtins.readFile ./flake.lock); | ||
in fetchTarball { | ||
url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz"; | ||
sha256 = lock.nodes.flake-compat.locked.narHash; } | ||
) { | ||
src = ./.; | ||
}).defaultNix |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# This file exists for legacy nix-shell | ||
# https://nixos.wiki/wiki/Flakes#Using_flakes_project_from_a_legacy_Nix | ||
# You generally do *not* have to modify this ever. | ||
(import ( | ||
let | ||
lock = builtins.fromJSON (builtins.readFile ./flake.lock); | ||
in fetchTarball { | ||
url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz"; | ||
sha256 = lock.nodes.flake-compat.locked.narHash; } | ||
) { | ||
src = ./.; | ||
}).shellNix |