fmt
This commit is contained in:
parent
d1cd496a6d
commit
db71d66600
5 changed files with 48 additions and 46 deletions
8
.github/pull_request_template.md
vendored
8
.github/pull_request_template.md
vendored
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
Thanks for taking the time !
|
||||
|
||||
Please ensure that some basic checks are passed before creating this Pull Request:
|
||||
Please ensure that some basic checks are passed before creating this Pull
|
||||
Request:
|
||||
|
||||
- [ ] Cargo Format
|
||||
- Run `cargo fmt` on the project.
|
||||
|
||||
- [ ] Clippy lints
|
||||
- Run `cargo clippy -- -Dwarnings` on the project to check for suggestions
|
||||
- Run `cargo clippy --fix` to let clippy apply the suggestions itself, if any.
|
||||
|
|
@ -14,5 +14,5 @@ Please ensure that some basic checks are passed before creating this Pull Reques
|
|||
This can be tiresome for frequent contributors, so it might would be better if
|
||||
you used a git pre-push hook as mentioned in the [readme](readme.md#hacking).
|
||||
|
||||
The [Build CI](.github/workflow/buildci.yaml) will also check whether the project can be compiled and
|
||||
cross-compiled to arm64 without any errors.
|
||||
The [Build CI](.github/workflow/buildci.yaml) will also check whether the
|
||||
project can be compiled and cross-compiled to arm64 without any errors.
|
||||
|
|
|
|||
1
.github/workflows/buildci.yml
vendored
1
.github/workflows/buildci.yml
vendored
|
|
@ -15,7 +15,6 @@ jobs:
|
|||
- name: Clippy
|
||||
run: cargo clippy -- -Dwarnings
|
||||
|
||||
|
||||
build:
|
||||
needs: pre-build-checks
|
||||
strategy:
|
||||
|
|
|
|||
10
Cargo.toml
10
Cargo.toml
|
|
@ -9,15 +9,15 @@ edition = "2021"
|
|||
build = "build.rs"
|
||||
|
||||
[dependencies]
|
||||
rand ="0.10.1"
|
||||
rocket = "0.5.1"
|
||||
tree_magic = "0.2.3"
|
||||
syntect = "5.3.0"
|
||||
rust-embed="8.11.0"
|
||||
clap = { version = "4.6.1", features = ["derive", "env"] }
|
||||
once_cell = "1"
|
||||
rand = "0.10.1"
|
||||
rocket = "0.5.1"
|
||||
rust-embed = "8.11.0"
|
||||
sha256 = "1"
|
||||
syntect = "5.3.0"
|
||||
time = { version = "0.3", features = ["formatting"] }
|
||||
tree_magic = "0.2.3"
|
||||
|
||||
[dependencies.rocket_dyn_templates]
|
||||
version = "0.2.0"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
version: '3.3'
|
||||
version: "3.3"
|
||||
services:
|
||||
pastebin:
|
||||
image: wantguns/bin
|
||||
|
|
|
|||
47
readme.md
47
readme.md
|
|
@ -1,4 +1,5 @@
|
|||
# Bin
|
||||
|
||||
A minimal pastebin which also accepts binary files like Images, PDFs and ships
|
||||
multiple clients.
|
||||
|
||||
|
|
@ -14,10 +15,10 @@ You can paste
|
|||
- Normal Text
|
||||
|
||||
- Paste Images from clipboard:
|
||||

|
||||

|
||||
|
||||
- Files by drag and drop:
|
||||

|
||||

|
||||
|
||||
### CLI
|
||||
|
||||
|
|
@ -25,7 +26,8 @@ You can paste
|
|||
|
||||
#### Installation
|
||||
|
||||
Get the client from [this repository](contrib/cli/client) or from my deployed paste:
|
||||
Get the client from [this repository](contrib/cli/client) or from my deployed
|
||||
paste:
|
||||
|
||||
```bash
|
||||
curl -o pst https://bin.noracodes.dev/r/client && chmod +x pst
|
||||
|
|
@ -51,10 +53,9 @@ PASTELINK="$URL$RESPONSE"
|
|||
echo "$PASTELINK.$EXTENSION"
|
||||
```
|
||||
|
||||
You have the option to remove the `/client` description / help in the
|
||||
landing page. To show the `/client` description, run the `bin` binary
|
||||
with either `BIN_CLIENT_DESC` env variable or a `-c` flag. More on
|
||||
arguments later
|
||||
You have the option to remove the `/client` description / help in the landing
|
||||
page. To show the `/client` description, run the `bin` binary with either
|
||||
`BIN_CLIENT_DESC` env variable or a `-c` flag. More on arguments later
|
||||
|
||||
#### Usage
|
||||
|
||||
|
|
@ -75,23 +76,27 @@ $ cat someimage.png | pst
|
|||
```vim
|
||||
nnoremap <leader>p :!pst %<CR>
|
||||
```
|
||||
|
||||
#### Usage
|
||||
|
||||
Use `<leader> + p` paste.
|
||||
|
||||
## Server Deployment
|
||||
|
||||
The [main fork](https://github.com/wantguns/bin) ships Docker and binary releases.
|
||||
The [main fork](https://github.com/wantguns/bin) ships Docker and binary
|
||||
releases.
|
||||
|
||||
### Manual
|
||||
|
||||
- Build on your own:
|
||||
|
||||
```bash
|
||||
# A statically linked build
|
||||
$ cargo build --release
|
||||
```
|
||||
|
||||
- Execute the binary as is, no extra shenanigans needed:
|
||||
|
||||
```bash
|
||||
$ ./bin
|
||||
```
|
||||
|
|
@ -131,9 +136,10 @@ This pastebin utilizes a custom configuration provider from Rocket. Apart from
|
|||
the essential arguments, you can also use environment variables, which have the
|
||||
highest preference in order.
|
||||
|
||||
Everything from the [official Rocket
|
||||
doc](https://rocket.rs/v0.5-rc/guide/configuration/#overview) is supported,
|
||||
just that you have to prefix the env variable with "BIN_":
|
||||
Everything from the
|
||||
[official Rocket doc](https://rocket.rs/v0.5-rc/guide/configuration/#overview)
|
||||
is supported, just that you have to prefix the env variable with "BIN\_":
|
||||
|
||||
```txt
|
||||
BIN_PORT=6163
|
||||
BIN_ADDRESS=0.0.0.0
|
||||
|
|
@ -145,20 +151,17 @@ BIN_IDENT=false
|
|||
|
||||
## API
|
||||
|
||||
`GET /r/<id>[.<ext>]`
|
||||
Get raw pastes
|
||||
`GET /r/<id>[.<ext>]` Get raw pastes
|
||||
|
||||
`GET /p/<id>`
|
||||
Get pastes with a pretty UI
|
||||
|
||||
`GET /p/<id>.<ext> `
|
||||
|
||||
Get syntax highlighted pastes in the pretty UI.
|
||||
E.g. https://bin.nora.codes/p/foobaz.cpp should return a C++ syntax
|
||||
highlighted paste
|
||||
Get syntax highlighted pastes in the pretty UI. E.g.
|
||||
https://bin.nora.codes/p/foobaz.cpp should return a C++ syntax highlighted paste
|
||||
|
||||
`POST /`
|
||||
Post binary data, get object ID
|
||||
`POST /` Post binary data, get object ID
|
||||
|
||||
## Design Decisions
|
||||
|
||||
|
|
@ -170,13 +173,13 @@ This pastebin:
|
|||
deploying it easier.
|
||||
- uses server sided highlighting, which ensures that everything stays light and
|
||||
snappy at the client side.
|
||||
- uses very minimal frontend because a pastebin does not need it. It focuses
|
||||
(or atleast tries to) on getting things done in minimum amount of clicks.
|
||||
- uses very minimal frontend because a pastebin does not need it. It focuses (or
|
||||
atleast tries to) on getting things done in minimum amount of clicks.
|
||||
|
||||
## Hacking
|
||||
|
||||
- If you want to ensure your pushed refs will pass CI, add the prepush script
|
||||
to your Git hooks:
|
||||
- If you want to ensure your pushed refs will pass CI, add the prepush script to
|
||||
your Git hooks:
|
||||
|
||||
```bash
|
||||
$ cp -a tools/prepush .git/hooks/pre-push
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue