Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/orhun/rustypaste-cli

A CLI tool for rustypaste
https://github.com/orhun/rustypaste-cli

cli file-upload file-uploader hacktoberfest pastebin rust upload

Last synced: about 1 month ago
JSON representation

A CLI tool for rustypaste

Awesome Lists containing this project

README

        

A CLI tool for [**rustypaste**](https://github.com/orhun/rustypaste).

![demo](img/demo.gif)

## Installation

### crates.io

```sh
cargo install rustypaste-cli
```

#### Features

- `use-native-certs`: makes the default TLS implementation use the OS' trust store. [\*](https://github.com/algesten/ureq#https--tls--ssl) (disabled)

To enable crate features, use the `--features` flag as follows:

```sh
cargo install rustypaste-cli --features use-native-certs
```

### Arch Linux

```
pacman -S rustypaste-cli
```

### Alpine Linux

`rustypaste-cli` is available for [Alpine Edge](https://pkgs.alpinelinux.org/packages?name=rustypaste-cli&branch=edge). It can be installed via [apk](https://wiki.alpinelinux.org/wiki/Alpine_Package_Keeper) after enabling the [testing repository](https://wiki.alpinelinux.org/wiki/Repositories).

```sh
apk add rustypaste-cli
```

### Binary releases

See the available binaries on [releases](https://github.com/orhun/rustypaste-cli/releases/) page.

### Build from source

```sh
git clone https://github.com/orhun/rustypaste-cli.git
cd rustypaste-cli/
cargo build --release
```

## Usage

`rpaste [options] `

```
-h, --help prints help information
-v, --version prints version information
-V, --server-version retrieves the server version
-l, --list lists files on the server
-d, --delete delete files from server
-o, --oneshot generates one shot links
-p, --pretty prettifies the output
-c, --config CONFIG sets the configuration file
-s, --server SERVER sets the address of the rustypaste server
-a, --auth TOKEN sets the authentication or delete token
-u, --url URL sets the URL to shorten
-r, --remote URL sets the remote URL for uploading
-e, --expire TIME sets the expiration time for the link
-n, --filename NAME sets and overrides the filename
```

### Set credentials

Either set the credentials on the command line (not recommended):

```sh
rpaste -s "https://paste.example.com" -a ""
```

or specify them in the [configuration file](#configuration).

### Upload files

```sh
rpaste awesome.txt other.txt
```

### Upload from stdin

```sh
echo "Hello World" | rpaste -
```

### Shorten URLs

```sh
rpaste -u https://example.com/some/long/url
```

### Paste from URL

```sh
rpaste -r https://example.com/file.txt
```

### One shot

```sh
rpaste -o disappear_after_seen.txt
```

### One shot URL

```sh
rpaste -ou https://example.com/some/long/url
```

### Expiration

```sh
rpaste -e 10min expires_in_10_minutes.txt
```

```sh
rpaste -e 1hour -u https://example.com/expire/1hour
```

\* Supported units: `ns`, `us`, `ms`, `sec`, `min`, `hours`, `days`, `weeks`, `months`, `years`

### List uploaded files

```sh
rpaste -l
```

\* Use `-p` for table output instead of JSON.

### Delete files from server

```sh
rpaste -d awesome.UA86.txt other.JSNI.txt
```

### Override the filename

```sh
rpaste -n filename-on-server.txt awesome.txt
```

\* rustypaste >=0.15.0 is required for this argument to work, otherwise the filename will not be overridden.

### Extras

- Show a _prettier_ output: `rpaste -p [...]`
- [Disable colors](https://no-color.org/) in the output: `NO_COLOR=1 rpaste -p [...]`

## Configuration

The configuration file can be specified via `--config` argument and `RPASTE_CONFIG` environment variable or it can be placed to the following global locations:

- `` `/` `rustypaste/config.toml`
- `` `/` `.rustypaste/config.toml`

`` depends on the platform as shown in the following table:

| Platform | Value | Example |
| -------- | ------------------------------------- | ---------------------------------------- |
| Linux | `$XDG_CONFIG_HOME` or `$HOME`/.config | /home/alice/.config |
| macOS | `$HOME`/Library/Application Support | /Users/Alice/Library/Application Support |
| Windows | `{FOLDERID_RoamingAppData}` | C:\Users\Alice\AppData\Roaming |

See [config.toml](./config.toml) for configuration options.

## Contributing

Pull requests are welcome!

#### License


All code is licensed under The MIT License.