106 lines
2.5 KiB
Markdown
106 lines
2.5 KiB
Markdown
<h1 align="center">aria</h1>
|
|
|
|
<p align="center">
|
|
<strong>Friendly aria2c wrapper for your personal downloads.</strong><br>
|
|
<i>Quick, simple, enjoyable.</i>
|
|
</p>
|
|
|
|
<p align="center">
|
|
<a href="https://git.tommasongr.com/tommaso/aria/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="License"></a>
|
|
<img src="https://img.shields.io/badge/platform-macOS-green.svg" alt="Platform">
|
|
<a href="https://tommasonegri.com"><img src="https://img.shields.io/badge/maintainer-Tommaso%20Negri-blue" alt="Maintainer"></a>
|
|
</p>
|
|
|
|
`aria` wraps the JSONRPC server of the great [aria2](https://aria2.github.io/), exposing just enough functionality to be dangerous.
|
|
|
|
---
|
|
|
|
## Installation
|
|
|
|
Build and install the binary and man page to `$(PREFIX)/bin` and `$(PREFIX)/share/man/man1` (defaults to `~/.local`):
|
|
|
|
```sh
|
|
make install
|
|
```
|
|
|
|
To install elsewhere, override `PREFIX`:
|
|
|
|
```sh
|
|
make install PREFIX=/usr/local
|
|
```
|
|
|
|
To remove:
|
|
|
|
```sh
|
|
make uninstall
|
|
```
|
|
|
|
> [!NOTE]
|
|
> Make sure `$(PREFIX)/bin` is in your `PATH` to run `aria` from anywhere.
|
|
|
|
---
|
|
|
|
## Features
|
|
|
|
### One command for everything
|
|
|
|
Add, pause, resume, and remove downloads with a unified API — no more memorising cryptic flags:
|
|
|
|
```sh
|
|
aria add https://example.com/file.iso
|
|
aria add uri https://example.com/file.iso
|
|
aria add torrent https://example.com/linux.torrent
|
|
aria pause 8a4c3f21e09b7d55
|
|
aria resume 8a4c3f21e09b7d55
|
|
aria remove 8a4c3f21e09b7d55
|
|
aria purge
|
|
```
|
|
|
|
Commands without arguments act on all downloads, so you can pause or resume everything at once:
|
|
|
|
```sh
|
|
aria pause
|
|
aria resume
|
|
```
|
|
|
|
### Interactive list
|
|
|
|
Run `aria list` to check the status of all your downloads in a beautifully formatted table,
|
|
live-refreshing every second:
|
|
|
|
```sh
|
|
aria list
|
|
```
|
|
|
|
Pick a download with the arrow keys and `enter`, and its **GID** is printed to `stdout`,
|
|
ready to be composed with any other tool:
|
|
|
|
```sh
|
|
aria pause "$(aria list)"
|
|
```
|
|
|
|
### Options
|
|
|
|
Every command supports a couple of well-chosen options, and nothing more:
|
|
|
|
| Option | Description | Default |
|
|
| --- | --- | --- |
|
|
| `-d`, `--directory <dir>` | Define the directory to save files. | `~/Downloads/` |
|
|
| `--seed` | Enable seeding after torrent download. | |
|
|
|
|
### Simple configuration
|
|
|
|
Point *aria* to your `aria2c` server by directly editing the source:
|
|
|
|
```swift
|
|
enum Config {
|
|
static let host: String = "127.0.0.1"
|
|
static let port: Int = 6800
|
|
static let secret: String = "my_secret"
|
|
static var endpoint: URL {
|
|
URL(string: "http://\(host):\(port)/jsonrpc")!
|
|
}
|
|
static let directory: String = "~/Downloads/"
|
|
}
|
|
```
|