mirror of
https://github.com/soywod/himalaya.git
synced 2024-11-24 20:10:23 +00:00
improve readme
This commit is contained in:
parent
65a3851dca
commit
308b74284f
3 changed files with 314 additions and 2 deletions
2
LICENSE
2
LICENSE
|
@ -1,4 +1,4 @@
|
|||
Copyright © 2020 Clément DOUIN (AKA soywod) <clement.douin@posteo.net>
|
||||
Copyright © 2020,2021 Clément DOUIN (AKA soywod) <clement.douin@posteo.net>
|
||||
|
||||
All rights reserved.
|
||||
|
||||
|
|
282
README.md
282
README.md
|
@ -1,8 +1,94 @@
|
|||
# 📫 Himalaya [WIP]
|
||||
# 📫 Himalaya [![gh-actions](https://github.com/soywod/himalaya/workflows/release/badge.svg)](https://github.com/soywod/himalaya/actions?query=workflow%3Arelease)
|
||||
|
||||
Minimalist CLI email client, written in Rust.
|
||||
|
||||
![image](https://user-images.githubusercontent.com/10437171/104848096-aee51000-58e3-11eb-8d99-bcfab5ca28ba.png)
|
||||
|
||||
## Table of contents
|
||||
|
||||
* [Motivation](#motivation)
|
||||
* [Installation](#installation)
|
||||
* [Usage](#usage)
|
||||
* [List mailboxes](#list-mailboxes)
|
||||
* [List emails](#list-emails)
|
||||
* [Search emails](#search-emails)
|
||||
* [Download email attachments](#download-email-attachments)
|
||||
* [Read email](#read-email)
|
||||
* [Reply email](#reply-email)
|
||||
* [Forward email](#forward-email)
|
||||
* [License](https://github.com/soywod/himalaya/blob/master/LICENSE)
|
||||
* [Changelog](https://github.com/soywod/himalaya/blob/master/CHANGELOG.md)
|
||||
* [Credits](#credits)
|
||||
|
||||
## Motivation
|
||||
|
||||
Bringing emails to your terminal is a pain. The mainstream TUI, (neo)mutt,
|
||||
takes time to configure. The default mapping is not intuitive when coming from
|
||||
the Vim environment. It is even scary to use at the beginning, since you are
|
||||
dealing with sensitive data!
|
||||
|
||||
The aim of Himalaya is to extract the email logic into a simple CLI API that
|
||||
can be used either directly for the terminal or from various interfaces. It
|
||||
gives users more flexibility.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
curl -sSL https://raw.githubusercontent.com/soywod/himalaya/master/install.sh | bash
|
||||
```
|
||||
|
||||
*See [wiki section](https://github.com/soywod/himalaya/wiki/Installation) for
|
||||
more information.*
|
||||
|
||||
## Configuration
|
||||
|
||||
```toml
|
||||
# ~/.config/himalaya/config.toml
|
||||
|
||||
name = "Your full name"
|
||||
downloads_dir = "/abs/path/to/downloads"
|
||||
|
||||
# Himalaya supports the multi-account
|
||||
# Each account should be inside a TOML section
|
||||
[gmail]
|
||||
default = true
|
||||
email = "my.email@gmail.com"
|
||||
|
||||
imap_host = "imap.gmail.com"
|
||||
imap_port = 993
|
||||
imap_login = "p.durant@gmail.test.com"
|
||||
imap_passwd_cmd = "pass show gmail"
|
||||
|
||||
smtp_host = "smtp.gmail.com"
|
||||
smtp_port = 487
|
||||
smtp_login = "p.durant@gmail.test.com"
|
||||
smtp_passwd_cmd = "pass show gmail"
|
||||
|
||||
[posteo]
|
||||
name = "Your overriden full name"
|
||||
downloads_dir = "/abs/path/to/overriden/downloads"
|
||||
email = "my.email@posteo.net"
|
||||
|
||||
imap_host = "posteo.de"
|
||||
imap_port = 993
|
||||
imap_login = "my.email@posteo.net"
|
||||
imap_passwd_cmd = "security find-internet-password -gs posteo -w"
|
||||
|
||||
smtp_host = "posteo.de"
|
||||
smtp_port = 487
|
||||
smtp_login = "my.email@posteo.net"
|
||||
smtp_passwd_cmd = "security find-internet-password -gs posteo -w"
|
||||
|
||||
# [other account]
|
||||
# ...
|
||||
```
|
||||
|
||||
*See [wiki section](https://github.com/soywod/himalaya/wiki/Configuration) for
|
||||
more information.*
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
Himalaya 0.1.0
|
||||
soywod <clement.douin@posteo.net>
|
||||
📫 Minimalist CLI email client
|
||||
|
@ -28,3 +114,197 @@ SUBCOMMANDS:
|
|||
search Lists emails matching the given IMAP query
|
||||
write Writes a new email
|
||||
```
|
||||
|
||||
*See [wiki section](https://github.com/soywod/himalaya/wiki/Usage) for more
|
||||
information.*
|
||||
|
||||
### List mailboxes
|
||||
|
||||
![image](https://user-images.githubusercontent.com/10437171/104848169-0e432000-58e4-11eb-8410-05f0404c0d99.png)
|
||||
|
||||
```
|
||||
himalaya-mailboxes
|
||||
Lists all available mailboxes
|
||||
|
||||
USAGE:
|
||||
himalaya mailboxes
|
||||
|
||||
FLAGS:
|
||||
-h, --help Prints help information
|
||||
-V, --version Prints version information
|
||||
```
|
||||
|
||||
*See [wiki section](https://github.com/soywod/himalaya/wiki/Usage:mailboxes)
|
||||
for more information.*
|
||||
|
||||
### List emails
|
||||
|
||||
![image](https://user-images.githubusercontent.com/10437171/104848096-aee51000-58e3-11eb-8d99-bcfab5ca28ba.png)
|
||||
|
||||
```
|
||||
himalaya-list
|
||||
Lists emails sorted by arrival date
|
||||
|
||||
USAGE:
|
||||
himalaya list [OPTIONS]
|
||||
|
||||
FLAGS:
|
||||
-h, --help Prints help information
|
||||
-V, --version Prints version information
|
||||
|
||||
OPTIONS:
|
||||
-m, --mailbox <STRING> Name of the mailbox [default: INBOX]
|
||||
-p, --page <INT> Page number [default: 0]
|
||||
-s, --size <INT> Page size [default: 10]
|
||||
```
|
||||
|
||||
*See [wiki section](https://github.com/soywod/himalaya/wiki/Usage:list) for
|
||||
more information.*
|
||||
|
||||
### Search emails
|
||||
|
||||
![image](https://user-images.githubusercontent.com/10437171/104848096-aee51000-58e3-11eb-8d99-bcfab5ca28ba.png)
|
||||
|
||||
```
|
||||
himalaya-search
|
||||
Lists emails matching the given IMAP query
|
||||
|
||||
USAGE:
|
||||
himalaya search [OPTIONS] <QUERY>...
|
||||
|
||||
FLAGS:
|
||||
-h, --help Prints help information
|
||||
-V, --version Prints version information
|
||||
|
||||
OPTIONS:
|
||||
-m, --mailbox <STRING> Name of the mailbox [default: INBOX]
|
||||
-p, --page <INT> Page number [default: 0]
|
||||
-s, --size <INT> Page size [default: 10]
|
||||
|
||||
ARGS:
|
||||
<QUERY>... IMAP query (see https://tools.ietf.org/html/rfc3501#section-6.4.4)
|
||||
```
|
||||
|
||||
*See [wiki section](https://github.com/soywod/himalaya/wiki/Usage:search) for
|
||||
more information.*
|
||||
|
||||
### Download email attachments
|
||||
|
||||
![image](https://user-images.githubusercontent.com/10437171/104848278-890c3b00-58e4-11eb-9b5c-48807c04f762.png)
|
||||
|
||||
```
|
||||
himalaya-attachments
|
||||
Downloads all attachments from an email
|
||||
|
||||
USAGE:
|
||||
himalaya attachments [OPTIONS] <UID>
|
||||
|
||||
FLAGS:
|
||||
-h, --help Prints help information
|
||||
-V, --version Prints version information
|
||||
|
||||
OPTIONS:
|
||||
-m, --mailbox <STRING> Name of the mailbox [default: INBOX]
|
||||
|
||||
ARGS:
|
||||
<UID> UID of the email
|
||||
```
|
||||
|
||||
*See [wiki section](https://github.com/soywod/himalaya/wiki/Usage:attachments)
|
||||
for more information.*
|
||||
|
||||
### Read email
|
||||
|
||||
```
|
||||
himalaya-read
|
||||
Reads text bodies of an email
|
||||
|
||||
USAGE:
|
||||
himalaya read [OPTIONS] <UID>
|
||||
|
||||
FLAGS:
|
||||
-h, --help Prints help information
|
||||
-V, --version Prints version information
|
||||
|
||||
OPTIONS:
|
||||
-m, --mailbox <STRING> Name of the mailbox [default: INBOX]
|
||||
-t, --mime-type <STRING> MIME type to use [default: plain] [possible values: plain, html]
|
||||
|
||||
ARGS:
|
||||
<UID> UID of the email
|
||||
```
|
||||
|
||||
*See [wiki section](https://github.com/soywod/himalaya/wiki/Usage:read) for
|
||||
more information.*
|
||||
|
||||
### Write email
|
||||
|
||||
```
|
||||
himalaya-write
|
||||
Writes a new email
|
||||
|
||||
USAGE:
|
||||
himalaya write
|
||||
|
||||
FLAGS:
|
||||
-h, --help Prints help information
|
||||
-V, --version Prints version information
|
||||
```
|
||||
|
||||
*See [wiki section](https://github.com/soywod/himalaya/wiki/Usage:write) for
|
||||
more information.*
|
||||
|
||||
### Reply email
|
||||
|
||||
```
|
||||
himalaya-reply
|
||||
Answers to an email
|
||||
|
||||
USAGE:
|
||||
himalaya reply [FLAGS] [OPTIONS] <UID>
|
||||
|
||||
FLAGS:
|
||||
-h, --help Prints help information
|
||||
-a, --all Including all recipients
|
||||
-V, --version Prints version information
|
||||
|
||||
OPTIONS:
|
||||
-m, --mailbox <STRING> Name of the mailbox [default: INBOX]
|
||||
|
||||
ARGS:
|
||||
<UID> UID of the email
|
||||
```
|
||||
|
||||
*See [wiki section](https://github.com/soywod/himalaya/wiki/Usage:reply) for
|
||||
more information.*
|
||||
|
||||
### Forward email
|
||||
|
||||
```
|
||||
himalaya-forward
|
||||
Forwards an email
|
||||
|
||||
USAGE:
|
||||
himalaya forward [OPTIONS] <UID>
|
||||
|
||||
FLAGS:
|
||||
-h, --help Prints help information
|
||||
-V, --version Prints version information
|
||||
|
||||
OPTIONS:
|
||||
-m, --mailbox <STRING> Name of the mailbox [default: INBOX]
|
||||
|
||||
ARGS:
|
||||
<UID> UID of the email
|
||||
```
|
||||
|
||||
*See [wiki section](https://github.com/soywod/himalaya/wiki/Usage:forward) for
|
||||
more information.*
|
||||
|
||||
## Credits
|
||||
|
||||
- [IMAP RFC3501](https://tools.ietf.org/html/rfc3501)
|
||||
- [Iris](https://github.com/soywod/iris.vim), the himalaya predecessor
|
||||
- [Neomutt](https://neomutt.org/)
|
||||
- [Alpine](http://alpine.x10host.com/alpine/alpine-info/)
|
||||
- [rust-imap](https://github.com/jonhoo/rust-imap)
|
||||
|
|
32
install.sh
Normal file
32
install.sh
Normal file
|
@ -0,0 +1,32 @@
|
|||
#!/bin/bash
|
||||
|
||||
get_os () {
|
||||
if [[ "$OSTYPE" == "linux-gnu" ]]; then
|
||||
echo "linux"
|
||||
elif [[ "$OSTYPE" == "freebsd"* ]]; then
|
||||
echo "linux"
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
echo "macos"
|
||||
elif [[ "$OSTYPE" == "cygwin" ]]; then
|
||||
echo "windows"
|
||||
elif [[ "$OSTYPE" == "msys" ]]; then
|
||||
echo "windows"
|
||||
elif [[ "$OSTYPE" == "win32" ]]; then
|
||||
echo "windows"
|
||||
else
|
||||
return -1
|
||||
fi
|
||||
}
|
||||
|
||||
OS=`get_os`
|
||||
|
||||
cd /tmp
|
||||
echo "Downloading latest ${OS} release…"
|
||||
curl -sLo himalaya.tar.gz "https://github.com/soywod/himalaya/releases/latest/download/himalaya-${OS}.tar.gz"
|
||||
echo "Installing binary…"
|
||||
tar -xzf himalaya.tar.gz
|
||||
rm himalaya.tar.gz
|
||||
chmod u+x himalaya.exe
|
||||
sudo mv himalaya.exe /usr/local/bin/himalaya
|
||||
|
||||
echo "$(himalaya --version) installed!"
|
Loading…
Reference in a new issue