/rustypaste-cli

A CLI tool for rustypaste

Primary LanguageRustMIT LicenseMIT

A CLI tool for rustypaste.

demo

Installation

crates.io

cargo install rustypaste-cli

Features

  • use-native-certs: makes the default TLS implementation use the OS' trust store. * (disabled)

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

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

Arch Linux

pacman -S rustypaste-cli

Alpine Linux

rustypaste-cli is available for Alpine Edge. It can be installed via apk after enabling the testing repository.

apk add rustypaste-cli

Binary releases

See the available binaries on releases page.

Build from source

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

Usage

rpaste [options] <file(s)>

-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):

rpaste -s "https://paste.example.com" -a "<token>"

or specify them in the configuration file.

Upload files

rpaste awesome.txt other.txt

Upload from stdin

echo "Hello World" | rpaste -

Shorten URLs

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

Paste from URL

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

One shot

rpaste -o disappear_after_seen.txt

One shot URL

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

Expiration

rpaste -e 10min expires_in_10_minutes.txt
rpaste -e 1hour -u https://example.com/expire/1hour

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

List uploaded files

rpaste -l

* Use -p for table output instead of JSON.

Delete files from server

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

Override the filename

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 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:

  • <config_dir> / rustypaste/config.toml
  • <home_dir> / .rustypaste/config.toml

<config_dir> 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 for configuration options.

Contributing

Pull requests are welcome!

License

All code is licensed under The MIT License.