More updates!

1. Removed unused dependencies
2. Removed API endpoint since I am not going to use it
3. Updated program to monitor sigint and sigterm and exit on receiving
   any of these signals
This commit is contained in:
Ishan Jain 2023-02-11 21:52:15 +05:30
parent ce05bb1dfc
commit d100ab8f5d
Signed by: ishan
GPG Key ID: 0506DB2A1CC75C27
8 changed files with 36 additions and 956 deletions

388
Cargo.lock generated
View File

@ -55,18 +55,6 @@ dependencies = [
"libc",
]
[[package]]
name = "anyhow"
version = "1.0.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"
[[package]]
name = "arrayvec"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
[[package]]
name = "async-stream"
version = "0.3.3"
@ -186,16 +174,6 @@ version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]]
name = "bytes"
version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
dependencies = [
"byteorder",
"iovec",
]
[[package]]
name = "bytes"
version = "1.4.0"
@ -268,15 +246,6 @@ dependencies = [
"inout",
]
[[package]]
name = "cloudabi"
version = "0.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
dependencies = [
"bitflags",
]
[[package]]
name = "codespan-reporting"
version = "0.11.1"
@ -330,17 +299,6 @@ dependencies = [
"libc",
]
[[package]]
name = "crossbeam-utils"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
dependencies = [
"autocfg",
"cfg-if 0.1.10",
"lazy_static",
]
[[package]]
name = "crypto-common"
version = "0.1.6"
@ -592,7 +550,7 @@ checksum = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412"
dependencies = [
"cfg-if 1.0.0",
"libc",
"redox_syscall 0.2.16",
"redox_syscall",
"windows-sys 0.45.0",
]
@ -661,12 +619,6 @@ version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
[[package]]
name = "futures"
version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678"
[[package]]
name = "futures"
version = "0.3.26"
@ -675,7 +627,6 @@ checksum = "13e2792b0ff0340399d58445b88fd9770e3489eff258a4cbc1523418f12abf84"
dependencies = [
"futures-channel",
"futures-core",
"futures-executor",
"futures-io",
"futures-sink",
"futures-task",
@ -698,34 +649,12 @@ version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608"
[[package]]
name = "futures-executor"
version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8de0a35a6ab97ec8869e32a2473f4b1324459e14c29275d14b10cb1fd19b50e"
dependencies = [
"futures-core",
"futures-task",
"futures-util",
]
[[package]]
name = "futures-io"
version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531"
[[package]]
name = "futures-macro"
version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "futures-sink"
version = "0.3.26"
@ -747,7 +676,6 @@ dependencies = [
"futures-channel",
"futures-core",
"futures-io",
"futures-macro",
"futures-sink",
"futures-task",
"memchr",
@ -836,7 +764,7 @@ version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4"
dependencies = [
"bytes 1.4.0",
"bytes",
"fnv",
"futures-core",
"futures-sink",
@ -903,7 +831,7 @@ version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399"
dependencies = [
"bytes 1.4.0",
"bytes",
"fnv",
"itoa",
]
@ -914,7 +842,7 @@ version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
dependencies = [
"bytes 1.4.0",
"bytes",
"http",
"pin-project-lite",
]
@ -943,7 +871,7 @@ version = "0.14.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e011372fa0b68db8350aa7a248930ecc7839bf46d8485577d69f117a75f164c"
dependencies = [
"bytes 1.4.0",
"bytes",
"futures-channel",
"futures-core",
"futures-util",
@ -967,7 +895,7 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
dependencies = [
"bytes 1.4.0",
"bytes",
"hyper",
"native-tls",
"tokio",
@ -1111,15 +1039,6 @@ version = "2.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146"
[[package]]
name = "itertools"
version = "0.10.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
dependencies = [
"either",
]
[[package]]
name = "itoa"
version = "1.0.5"
@ -1157,19 +1076,6 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
[[package]]
name = "lexical-core"
version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe"
dependencies = [
"arrayvec",
"bitflags",
"cfg-if 1.0.0",
"ryu",
"static_assertions",
]
[[package]]
name = "libc"
version = "0.2.139"
@ -1191,15 +1097,6 @@ version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
[[package]]
name = "lock_api"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
dependencies = [
"scopeguard",
]
[[package]]
name = "lock_api"
version = "0.4.9"
@ -1243,12 +1140,6 @@ dependencies = [
"regex-automata",
]
[[package]]
name = "maybe-uninit"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
[[package]]
name = "memchr"
version = "2.5.0"
@ -1325,17 +1216,6 @@ dependencies = [
"slab",
]
[[package]]
name = "mio-uds"
version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
dependencies = [
"iovec",
"libc",
"mio 0.6.23",
]
[[package]]
name = "miow"
version = "0.2.2"
@ -1354,7 +1234,7 @@ version = "2.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ed4198ce7a4cbd2a57af78d28c6fbb57d81ac5f1d6ad79ac6c5587419cbdf22"
dependencies = [
"bytes 1.4.0",
"bytes",
"encoding_rs",
"futures-util",
"http",
@ -1397,17 +1277,6 @@ dependencies = [
"winapi 0.3.9",
]
[[package]]
name = "nom"
version = "5.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
dependencies = [
"lexical-core",
"memchr",
"version_check",
]
[[package]]
name = "normpath"
version = "0.3.2"
@ -1537,40 +1406,14 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
[[package]]
name = "parking_lot"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
dependencies = [
"lock_api 0.3.4",
"parking_lot_core 0.6.3",
"rustc_version",
]
[[package]]
name = "parking_lot"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
dependencies = [
"lock_api 0.4.9",
"parking_lot_core 0.9.7",
]
[[package]]
name = "parking_lot_core"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bda66b810a62be75176a80873726630147a5ca780cd33921e0b5709033e66b0a"
dependencies = [
"cfg-if 0.1.10",
"cloudabi",
"libc",
"redox_syscall 0.1.57",
"rustc_version",
"smallvec 0.6.14",
"winapi 0.3.9",
"lock_api",
"parking_lot_core",
]
[[package]]
@ -1581,8 +1424,8 @@ checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
dependencies = [
"cfg-if 1.0.0",
"libc",
"redox_syscall 0.2.16",
"smallvec 1.10.0",
"redox_syscall",
"smallvec",
"windows-sys 0.45.0",
]
@ -1602,24 +1445,17 @@ dependencies = [
"chrono",
"diesel",
"diesel_migrations",
"futures 0.3.26",
"itertools",
"log",
"once_cell",
"prometheus",
"pulldown-cmark",
"rand",
"reqwest",
"rocket",
"rocket_dyn_templates",
"rocket_sync_db_pools",
"rust-embed",
"serde",
"serde_json",
"serde_with",
"time-parse",
"tokio",
"tokio-signal",
]
[[package]]
@ -1825,22 +1661,11 @@ dependencies = [
"lazy_static",
"libc",
"memchr",
"parking_lot 0.12.1",
"parking_lot",
"procfs",
"thiserror",
]
[[package]]
name = "pulldown-cmark"
version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d9cc634bc78768157b5cbfe988ffcd1dcba95cd2b2f03a88316c08c6d00ed63"
dependencies = [
"bitflags",
"memchr",
"unicase",
]
[[package]]
name = "quote"
version = "1.0.23"
@ -1857,7 +1682,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93"
dependencies = [
"log",
"parking_lot 0.12.1",
"parking_lot",
"scheduled-thread-pool",
]
@ -1891,12 +1716,6 @@ dependencies = [
"getrandom",
]
[[package]]
name = "redox_syscall"
version = "0.1.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
[[package]]
name = "redox_syscall"
version = "0.2.16"
@ -1968,7 +1787,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21eed90ec8570952d53b772ecf8f206aa1ec9a3d76b2521c56c42973f2d91ee9"
dependencies = [
"base64 0.21.0",
"bytes 1.4.0",
"bytes",
"encoding_rs",
"futures-core",
"futures-util",
@ -2009,16 +1828,16 @@ dependencies = [
"atomic",
"atty",
"binascii",
"bytes 1.4.0",
"bytes",
"either",
"figment",
"futures 0.3.26",
"futures",
"indexmap",
"log",
"memchr",
"multer",
"num_cpus",
"parking_lot 0.12.1",
"parking_lot",
"pin-project-lite",
"rand",
"ref-cast",
@ -2074,7 +1893,7 @@ checksum = "2ded65d127954de3c12471630bf4b81a2792f065984461e65b91d0fdaafc17a2"
dependencies = [
"cookie",
"either",
"futures 0.3.26",
"futures",
"http",
"hyper",
"indexmap",
@ -2085,7 +1904,7 @@ dependencies = [
"pin-project-lite",
"ref-cast",
"serde",
"smallvec 1.10.0",
"smallvec",
"stable-pattern",
"state",
"time 0.3.17",
@ -2117,49 +1936,6 @@ dependencies = [
"quote",
]
[[package]]
name = "rust-embed"
version = "6.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "283ffe2f866869428c92e0d61c2f35dfb4355293cdfdc48f49e895c15f1333d1"
dependencies = [
"rust-embed-impl",
"rust-embed-utils",
"walkdir",
]
[[package]]
name = "rust-embed-impl"
version = "6.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "31ab23d42d71fb9be1b643fe6765d292c5e14d46912d13f3ae2815ca048ea04d"
dependencies = [
"proc-macro2",
"quote",
"rust-embed-utils",
"syn",
"walkdir",
]
[[package]]
name = "rust-embed-utils"
version = "7.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1669d81dfabd1b5f8e2856b8bbe146c6192b0ba22162edc738ac0a5de18f054"
dependencies = [
"sha2",
"walkdir",
]
[[package]]
name = "rustc_version"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
dependencies = [
"semver",
]
[[package]]
name = "rustix"
version = "0.36.8"
@ -2210,7 +1986,7 @@ version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "977a7519bff143a44f842fd07e80ad1329295bd71686457f18e496736f4bf9bf"
dependencies = [
"parking_lot 0.12.1",
"parking_lot",
]
[[package]]
@ -2254,21 +2030,6 @@ dependencies = [
"libc",
]
[[package]]
name = "semver"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
dependencies = [
"semver-parser",
]
[[package]]
name = "semver-parser"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]]
name = "serde"
version = "1.0.152"
@ -2393,15 +2154,6 @@ dependencies = [
"deunicode",
]
[[package]]
name = "smallvec"
version = "0.6.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0"
dependencies = [
"maybe-uninit",
]
[[package]]
name = "smallvec"
version = "1.10.0"
@ -2442,12 +2194,6 @@ dependencies = [
"loom",
]
[[package]]
name = "static_assertions"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
name = "strsim"
version = "0.10.0"
@ -2480,7 +2226,7 @@ dependencies = [
"cfg-if 1.0.0",
"fastrand",
"libc",
"redox_syscall 0.2.16",
"redox_syscall",
"remove_dir_all",
"winapi 0.3.9",
]
@ -2583,16 +2329,6 @@ dependencies = [
"time-core",
]
[[package]]
name = "time-parse"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1160cce3eff1e83f47add604ad3ad0b0609e2f76deb6143f699d40d55a2a83a"
dependencies = [
"anyhow",
"nom",
]
[[package]]
name = "tinyvec"
version = "1.6.0"
@ -2615,7 +2351,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af"
dependencies = [
"autocfg",
"bytes 1.4.0",
"bytes",
"libc",
"memchr",
"mio 0.8.5",
@ -2627,27 +2363,6 @@ dependencies = [
"windows-sys 0.42.0",
]
[[package]]
name = "tokio-executor"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
dependencies = [
"crossbeam-utils",
"futures 0.1.31",
]
[[package]]
name = "tokio-io"
version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674"
dependencies = [
"bytes 0.4.12",
"futures 0.1.31",
"log",
]
[[package]]
name = "tokio-macros"
version = "1.8.2"
@ -2669,42 +2384,6 @@ dependencies = [
"tokio",
]
[[package]]
name = "tokio-reactor"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
dependencies = [
"crossbeam-utils",
"futures 0.1.31",
"lazy_static",
"log",
"mio 0.6.23",
"num_cpus",
"parking_lot 0.9.0",
"slab",
"tokio-executor",
"tokio-io",
"tokio-sync",
]
[[package]]
name = "tokio-signal"
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0c34c6e548f101053321cba3da7cbb87a610b85555884c41b07da2eb91aff12"
dependencies = [
"futures 0.1.31",
"libc",
"mio 0.6.23",
"mio-uds",
"signal-hook-registry",
"tokio-executor",
"tokio-io",
"tokio-reactor",
"winapi 0.3.9",
]
[[package]]
name = "tokio-stream"
version = "0.1.11"
@ -2716,23 +2395,13 @@ dependencies = [
"tokio",
]
[[package]]
name = "tokio-sync"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee"
dependencies = [
"fnv",
"futures 0.1.31",
]
[[package]]
name = "tokio-util"
version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc6a3b08b64e6dfad376fa2432c7b1f01522e37a623c3050bc95db2d3ff21583"
dependencies = [
"bytes 1.4.0",
"bytes",
"futures-core",
"futures-sink",
"pin-project-lite",
@ -2810,7 +2479,7 @@ dependencies = [
"once_cell",
"regex",
"sharded-slab",
"smallvec 1.10.0",
"smallvec",
"thread_local",
"tracing",
"tracing-core",
@ -2904,15 +2573,6 @@ dependencies = [
"unic-common",
]
[[package]]
name = "unicase"
version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
dependencies = [
"version_check",
]
[[package]]
name = "unicode-bidi"
version = "0.3.10"

View File

@ -10,14 +10,10 @@ build = "buildSrc/build.rs"
chrono = "0.4.23"
diesel = { version = "1.4.6", features = ["chrono"] }
diesel_migrations = "1.4.0"
futures = "0.3.26"
itertools = "0.10.5"
log = "0.4.14"
once_cell = "1.17.0"
prometheus = { version = "0.13.3", features = [
"process",
], default-features = false }
pulldown-cmark = { version = "0.9.2", default-features = false }
rand = "0.8.3"
reqwest = { version = "0.11.14", features = ["json"] }
rocket = { version = "=0.5.0-rc.2", features = ["json"] }
@ -25,13 +21,10 @@ rocket_dyn_templates = { version = "=0.1.0-rc.2", features = ["tera"] }
rocket_sync_db_pools = { version = "=0.1.0-rc.2", features = [
"diesel_postgres_pool",
] }
rust-embed = "6.4.2"
serde = { version = "1.0.152", features = ["derive"] }
serde_json = "1.0.93"
serde_with = "2.2.0"
time-parse = "0.2.0"
tokio = { version = "1.25.0", features = ["rt"] }
tokio-signal = "0.2.9"
[build-dependencies]
serde = { version = "1.0.152", features = ["derive"] }

View File

@ -1,20 +0,0 @@
// pastebin.run
// Copyright (C) 2022 Konrad Borowski
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
import matchers from "@testing-library/jest-dom/matchers";
import { expect } from "vitest";
expect.extend(matchers);

View File

@ -1,494 +0,0 @@
[
{
"identifier": "plaintext",
"name": "Plain text"
},
{
"identifier": "c",
"name": "C",
"helloworld": "#include <stdio.h>\n\nint main(void) {\n puts(\"Hello, world!\");\n return 0;\n}",
"implementations": [
{
"label": "Clang",
"identifier": "clang",
"wrappers": [
{
"identifier": "clang",
"label": "Run",
"code": "mv code code.c; clang %s code.c && ./a.out"
}
]
},
{
"label": "gcc",
"identifier": "gcc",
"wrappers": [
{
"identifier": "gcc",
"label": "Run",
"code": "mv code code.c; gcc %s code.c && ./a.out"
}
]
}
]
},
{
"identifier": "cpp",
"name": "C++",
"helloworld": "#include <iostream>\n\nint main() {\n std::cout << \"Hello, world!\\n\";\n}",
"implementations": [
{
"label": "Clang",
"identifier": "clang",
"wrappers": [
{
"identifier": "clangcpp",
"label": "Run",
"code": "mv code code.cpp; clang++ %s code.cpp && ./a.out"
}
]
},
{
"label": "g++",
"identifier": "gcc",
"wrappers": [
{
"identifier": "gpp",
"label": "Run",
"code": "mv code code.cpp; g++ %s code.cpp && ./a.out"
}
]
}
]
},
{
"identifier": "csharp",
"name": "C#",
"helloworld": "using System;\n\nclass Program {\n static void Main(string[] args) {\n Console.WriteLine(\"Hello, world!\");\n }\n}",
"implementations": [
{
"label": ".NET Core",
"identifier": "netcore",
"wrappers": [
{
"identifier": "netcore",
"label": "Run",
"code": "echo '<Project Sdk=\"Microsoft.NET.Sdk\"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>netcoreapp5.0</TargetFramework></PropertyGroup></Project>' > project.csproj; mv code code.cs; dotnet run %s"
}
]
}
]
},
{
"identifier": "go",
"name": "Go",
"helloworld": "package main\n\nimport \"fmt\"\n\nfunc main() {\n\tfmt.Println(\"Hello, world!\")\n}",
"implementations": [
{
"label": "gc",
"identifier": "gc",
"wrappers": [
{
"identifier": "gc",
"label": "Run",
"code": "mv code code.go; go run code.go"
},
{
"identifier": "goimports",
"label": "Format",
"code": "goimports -w code; cat code",
"is_formatter": true
}
]
}
]
},
{
"identifier": "haskell",
"name": "Haskell",
"helloworld": "main = putStrLn \"Hello, world!\"",
"implementations": [
{
"label": "GHC",
"identifier": "ghc",
"wrappers": [
{
"identifier": "ghc",
"label": "Run",
"code": "mv code code.hs; ghc %s code.hs && ./code"
}
]
}
]
},
{
"identifier": "html",
"name": "HTML",
"implementations": [
{
"label": "Prettier",
"identifier": "prettier",
"wrappers": [
{
"identifier": "html-prettier",
"label": "Format (prettier)",
"code": "mv code{,.html}; prettier code.html || cat code.html",
"is_formatter": true
}
]
}
]
},
{
"identifier": "java",
"name": "Java",
"helloworld": "class HelloWorld {\n public static void main(String[] args) {\n System.out.println(\"Hello, world!\");\n }\n}",
"implementations": [
{
"label": "OpenJDK 8",
"identifier": "openjdk8",
"wrappers": [
{
"identifier": "openjdk8",
"label": "Run",
"code": "mv code code.java; $JAVA8/bin/javac %s code.java; $JAVA8/bin/java \"$(perl -e 'my @classes = grep { !/\\$/ } glob q[*.class]; if (@classes == 1) { my $class = $classes[0]; $class =~ s/\\.class\\z//; print $class } else { print q[Main] }')\""
}
]
},
{
"label": "OpenJDK 11",
"identifier": "openjdk11",
"wrappers": [
{
"identifier": "openjdk11",
"label": "Run",
"code": "mv code code.java; $JAVA11/bin/javac %s code.java; $JAVA11/bin/java \"$(perl -e 'my @classes = grep { !/\\$/ } glob q[*.class]; if (@classes == 1) { my $class = $classes[0]; $class =~ s/\\.class\\z//; print $class } else { print q[Main] }')\""
}
]
}
]
},
{
"identifier": "javascript",
"name": "JavaScript",
"helloworld": "console.log(\"Hello, world!\");",
"implementations": [
{
"label": "Node.js",
"identifier": "nodejs",
"wrappers": [
{
"identifier": "nodejs",
"label": "Run",
"code": "node %s code"
},
{
"identifier": "nodejs-prettier",
"label": "Format (prettier)",
"code": "mv code{,.js}; prettier code.js || cat code.js",
"is_formatter": true
}
]
}
]
},
{
"identifier": "jinja2",
"name": "Jinja2"
},
{
"identifier": "jsx",
"name": "JSX",
"implementations": [
{
"label": "Node.js",
"identifier": "nodejs",
"wrappers": [
{
"identifier": "jsx-prettier",
"label": "Format (prettier)",
"code": "mv code{,.jsx}; prettier code.jsx || cat code.jsx",
"is_formatter": true
}
]
}
]
},
{
"identifier": "markdown",
"name": "Markdown",
"implementations": [
{
"label": "Prettier",
"identifier": "prettier",
"wrappers": [
{
"identifier": "markdown-prettier",
"label": "Format (prettier)",
"code": "mv code{,.md}; prettier code.md || cat code.md",
"is_formatter": true
}
]
}
]
},
{
"identifier": "nix",
"name": "Nix"
},
{
"identifier": "perl",
"name": "Perl",
"helloworld": "use v5.12;\nuse warnings;\n\nsay \"Hello, world!\";",
"implementations": [
{
"label": "Perl",
"identifier": "perl",
"wrappers": [
{
"identifier": "perl",
"label": "Run",
"code": "perl %s code"
}
]
}
]
},
{
"identifier": "php",
"name": "PHP",
"helloworld": "<?php\necho \"Hello, world!\\n\";",
"implementations": [
{
"label": "PHP",
"identifier": "php",
"wrappers": [
{
"identifier": "php",
"label": "Run",
"code": "php %s code"
}
]
}
]
},
{
"identifier": "postgresql",
"name": "PostgreSQL"
},
{
"identifier": "python",
"name": "Python 3",
"helloworld": "print(\"Hello, world!\")",
"implementations": [
{
"label": "CPython",
"identifier": "cpython",
"wrappers": [
{
"identifier": "cpython",
"label": "Run",
"code": "python3 %s code"
},
{
"identifier": "black",
"label": "Format (black)",
"code": "black code; cat code",
"is_formatter": true
}
]
}
]
},
{
"identifier": "raku",
"name": "Raku",
"helloworld": "say \"Hello, world!\"",
"implementations": [
{
"label": "Rakudo",
"identifier": "rakudo",
"wrappers": [
{
"identifier": "rakudo",
"label": "Run",
"code": "perl6 %s code"
}
]
}
]
},
{
"identifier": "rust",
"name": "Rust",
"helloworld": "fn main() {\n println!(\"Hello, world!\");\n}",
"implementations": [
{
"label": "Stable",
"identifier": "stable",
"wrappers": [
{
"identifier": "rustc-stable",
"label": "Run",
"code": "mv code code.rs; rustc %s code.rs && ./code"
},
{
"identifier": "rustc-asm-stable",
"label": "ASM",
"code": "rustc --emit asm --crate-type rlib %s code && cat code.s",
"is_asm": true
},
{
"identifier": "rustfmt-stable",
"label": "Rustfmt",
"code": "rustfmt code; cat code",
"is_formatter": true
},
{
"identifier": "clippy-stable",
"label": "Clippy",
"code": "cargo init; mv code src/main.rs; cargo clippy"
}
]
},
{
"label": "Beta",
"identifier": "beta",
"wrappers": [
{
"identifier": "rustc-beta",
"label": "Run",
"code": "mv code code.rs; $RUST_BETA/bin/rustc %s code.rs && ./code"
},
{
"identifier": "rustc-asm-beta",
"label": "ASM",
"code": "$RUST_BETA/bin/rustc --emit asm --crate-type rlib %s code && cat code.s",
"is_asm": true
},
{
"identifier": "rustfmt-beta",
"label": "Rustfmt",
"code": "$RUST_BETA/bin/rustfmt code; cat code",
"is_formatter": true
},
{
"identifier": "clippy-beta",
"label": "Clippy",
"code": "$RUST_BETA/bin/cargo init; mv code src/main.rs; $RUST_BETA/bin/cargo clippy"
}
]
},
{
"label": "Nightly",
"identifier": "nightly",
"wrappers": [
{
"identifier": "rustc-nightly",
"label": "Run",
"code": "mv code code.rs; $RUST_NIGHTLY/bin/rustc %s code.rs && ./code"
},
{
"identifier": "rustc-asm-nightly",
"label": "ASM",
"code": "$RUST_NIGHTLY/bin/rustc --emit asm --crate-type rlib %s code && cat code.s",
"is_asm": true
},
{
"identifier": "rustfmt-nightly",
"label": "Rustfmt",
"code": "$RUST_NIGHTLY/bin/rustfmt code; cat code",
"is_formatter": true
},
{
"identifier": "clippy-nightly",
"label": "Clippy",
"code": "$RUST_NIGHTLY/bin/cargo init; mv code src/main.rs; $RUST_NIGHTLY/bin/cargo clippy"
}
]
}
]
},
{
"identifier": "sh",
"name": "Sh",
"helloworld": "echo Hello, world!",
"implementations": [
{
"label": "sh",
"identifier": "sh",
"wrappers": [
{
"identifier": "sh",
"label": "Run",
"code": "sh %s code"
}
]
}
]
},
{
"identifier": "sql",
"name": "SQL"
},
{
"identifier": "sqlite",
"name": "SQLite",
"helloworld": "SELECT 'Hello, world!'",
"implementations": [
{
"label": "SQLite",
"identifier": "sqlite",
"wrappers": [
{
"identifier": "sqlite",
"label": "Run",
"code": "sqlite3 %s < code"
}
]
}
]
},
{
"identifier": "typescript",
"name": "TypeScript",
"helloworld": "console.log(\"Hello, world!\");",
"implementations": [
{
"label": "Node.js",
"identifier": "nodejs",
"wrappers": [
{
"identifier": "typescript-nodejs",
"label": "Run",
"code": "mv code code.ts; tsc %s code.ts && node code"
},
{
"identifier": "typescript-prettier",
"label": "Format (prettier)",
"code": "mv code{,.ts}; prettier code.ts || cat code.ts",
"is_formatter": true
}
]
}
]
},
{
"identifier": "tsx",
"name": "TypeScript-JSX",
"implementations": [
{
"label": "Node.js",
"identifier": "nodejs",
"wrappers": [
{
"identifier": "tsx-prettier",
"label": "Format (prettier)",
"code": "mv code{,.tsx}; prettier code.tsx || cat code.tsx",
"is_formatter": true
}
]
}
]
}
]

View File

@ -23,9 +23,7 @@ mod models;
mod routes;
mod schema;
use crate::routes::{
api_insert_paste, config, display_paste, index, insert_paste, metrics, raw_paste,
};
use crate::routes::{config, display_paste, index, insert_paste, metrics, raw_paste};
use chrono::{Duration, Utc};
use diesel::prelude::*;
use rocket::fairing::AdHoc;
@ -40,7 +38,7 @@ use std::net::SocketAddr;
use tokio::io::{AsyncReadExt, AsyncWriteExt};
use tokio::net::{TcpListener, TcpStream};
use tokio::runtime::Runtime;
use tokio::signal;
use tokio::signal::unix::{signal, SignalKind};
use tokio::sync::oneshot::Sender;
#[database("main")]
@ -121,8 +119,14 @@ fn main() -> Result<(), rocket::Error> {
}
async fn shutdown_monitor(s: Sender<i32>) {
let mut sigint = signal(SignalKind::interrupt()).unwrap();
let mut sigterm = signal(SignalKind::terminate()).unwrap();
tokio::select! {
_ = signal::ctrl_c() => {
_ = sigint.recv() => {
s.send(0).unwrap();
},
_ = sigterm.recv() => {
s.send(0).unwrap();
},
}
@ -211,7 +215,6 @@ fn rocket() -> Rocket<Build> {
.mount(
"/",
routes![
api_insert_paste,
config,
index,
insert_paste,

View File

@ -1,58 +0,0 @@
// pastebin.run
// Copyright (C) 2021 Konrad Borowski
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
use crate::models::paste::{self, InsertionError};
use crate::models::Cors;
use crate::Db;
use chrono::Duration;
use chrono::Utc;
use rocket::form::{self, Form, FromFormField, ValueField};
use std::error::Error;
#[derive(FromForm)]
pub struct PasteForm {
#[field(default = Expiration(None))]
expiration: Expiration,
code: String,
}
struct Expiration(Option<Duration>);
impl<'r> FromFormField<'r> for Expiration {
fn from_value(field: ValueField<'r>) -> form::Result<'r, Self> {
let duration = time_parse::duration::parse_nom(field.value).map_err(Box::from)?;
let duration =
Duration::from_std(duration).map_err(|x| -> Box<dyn Error + Send> { Box::new(x) })?;
Ok(Self(Some(duration)))
}
}
#[post("/api/v1/pastes", data = "<form>")]
pub async fn api_insert_paste(
db: Db,
form: Form<PasteForm>,
) -> Result<Cors<String>, InsertionError> {
let identifier = db
.run(move |conn| {
paste::insert(
conn,
form.expiration.0.map(|expiration| Utc::now() + expiration),
&form.code,
)
})
.await?;
Ok(Cors(identifier))
}

View File

@ -14,7 +14,6 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
mod api_insert_paste_route;
mod config_route;
mod display_paste_route;
mod index_route;
@ -22,7 +21,6 @@ mod insert_paste_route;
mod metrics_route;
mod raw_paste_route;
pub use api_insert_paste_route::*;
pub use config_route::*;
pub use display_paste_route::*;
pub use index_route::*;

View File

@ -4,17 +4,15 @@
<meta name=viewport content="width=device-width, initial-scale=1">
<title>p.ishan.pw</title>
{{ css_stylesheet() | safe }}
<meta name=description content="{% block description %}Compile and share code{% endblock description %}">
<meta name=description content="{% block description %}share code{% endblock description %}">
<script type=module src="{{ js_path() }}"></script>
<header id=header>
<a href="/">
<h1>pastebin<small>.run</small></h1>
<h1>pastebin<small>p.ishan.pw</small></h1>
</a>
<nav id="menu-buttons">
<ul>
<!--TODO: do not hard code -->
<li><a href="https://p.ishan.pw/api">API</a
><li><a href="https://github.com/pastebinrun/pastebinrun/">Source code</a
><li><a href="https://git.ishanjain.me/ishan/pastebin">Source code</a
></ul>
</nav>
</header>