Listen to git commits for a specific repo and run a shell command

Rip out old websocket code bc library is unmaintained and start over

vielle.dev cae008da 0b8c1034

verified
Changed files
+105 -577
src
+95 -520
Cargo.lock
··· 36 36 37 37 [[package]] 38 38 name = "autocfg" 39 - version = "0.1.8" 40 - source = "registry+https://github.com/rust-lang/crates.io-index" 41 - checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78" 42 - dependencies = [ 43 - "autocfg 1.5.0", 44 - ] 45 - 46 - [[package]] 47 - name = "autocfg" 48 39 version = "1.5.0" 49 40 source = "registry+https://github.com/rust-lang/crates.io-index" 50 41 checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" ··· 62 53 "object", 63 54 "rustc-demangle", 64 55 "windows-targets", 65 - ] 66 - 67 - [[package]] 68 - name = "base64" 69 - version = "0.9.3" 70 - source = "registry+https://github.com/rust-lang/crates.io-index" 71 - checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" 72 - dependencies = [ 73 - "byteorder", 74 - "safemem", 75 - ] 76 - 77 - [[package]] 78 - name = "base64" 79 - version = "0.10.1" 80 - source = "registry+https://github.com/rust-lang/crates.io-index" 81 - checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" 82 - dependencies = [ 83 - "byteorder", 84 56 ] 85 57 86 58 [[package]] ··· 179 151 checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" 180 152 181 153 [[package]] 182 - name = "cloudabi" 183 - version = "0.0.3" 184 - source = "registry+https://github.com/rust-lang/crates.io-index" 185 - checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" 186 - dependencies = [ 187 - "bitflags 1.3.2", 188 - ] 189 - 190 - [[package]] 191 154 name = "core-foundation" 192 155 version = "0.9.4" 193 156 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 204 167 checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 205 168 206 169 [[package]] 207 - name = "crossbeam-utils" 208 - version = "0.7.2" 209 - source = "registry+https://github.com/rust-lang/crates.io-index" 210 - checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" 211 - dependencies = [ 212 - "autocfg 1.5.0", 213 - "cfg-if 0.1.10", 214 - "lazy_static", 215 - ] 216 - 217 - [[package]] 218 170 name = "data-encoding" 219 171 version = "2.9.0" 220 172 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 322 274 source = "registry+https://github.com/rust-lang/crates.io-index" 323 275 checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" 324 276 dependencies = [ 325 - "percent-encoding 2.3.2", 277 + "percent-encoding", 326 278 ] 327 - 328 - [[package]] 329 - name = "fuchsia-cprng" 330 - version = "0.1.1" 331 - source = "registry+https://github.com/rust-lang/crates.io-index" 332 - checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" 333 279 334 280 [[package]] 335 281 name = "fuchsia-zircon" ··· 348 294 checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" 349 295 350 296 [[package]] 351 - name = "futures" 352 - version = "0.1.31" 353 - source = "registry+https://github.com/rust-lang/crates.io-index" 354 - checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" 355 - 356 - [[package]] 357 297 name = "futures-channel" 358 298 version = "0.3.31" 359 299 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 414 354 415 355 [[package]] 416 356 name = "getrandom" 357 + version = "0.1.16" 358 + source = "registry+https://github.com/rust-lang/crates.io-index" 359 + checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" 360 + dependencies = [ 361 + "cfg-if 1.0.3", 362 + "libc", 363 + "wasi 0.9.0+wasi-snapshot-preview1", 364 + ] 365 + 366 + [[package]] 367 + name = "getrandom" 417 368 version = "0.2.16" 418 369 source = "registry+https://github.com/rust-lang/crates.io-index" 419 370 checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" ··· 473 424 checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 474 425 475 426 [[package]] 476 - name = "hermit-abi" 477 - version = "0.5.2" 478 - source = "registry+https://github.com/rust-lang/crates.io-index" 479 - checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" 480 - 481 - [[package]] 482 427 name = "http" 483 428 version = "1.3.1" 484 429 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 520 465 521 466 [[package]] 522 467 name = "hyper" 523 - version = "0.10.16" 524 - source = "registry+https://github.com/rust-lang/crates.io-index" 525 - checksum = "0a0652d9a2609a968c14be1a9ea00bf4b1d64e2e1f53a1b51b6fff3a6e829273" 526 - dependencies = [ 527 - "base64 0.9.3", 528 - "httparse", 529 - "language-tags", 530 - "log 0.3.9", 531 - "mime 0.2.6", 532 - "num_cpus", 533 - "time", 534 - "traitobject", 535 - "typeable", 536 - "unicase", 537 - "url 1.7.2", 538 - ] 539 - 540 - [[package]] 541 - name = "hyper" 542 468 version = "1.7.0" 543 469 source = "registry+https://github.com/rust-lang/crates.io-index" 544 470 checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" ··· 554 480 "itoa", 555 481 "pin-project-lite", 556 482 "pin-utils", 557 - "smallvec 1.15.1", 483 + "smallvec", 558 484 "tokio", 559 485 "want", 560 486 ] ··· 566 492 checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" 567 493 dependencies = [ 568 494 "http", 569 - "hyper 1.7.0", 495 + "hyper", 570 496 "hyper-util", 571 497 "rustls", 572 498 "rustls-pki-types", ··· 583 509 dependencies = [ 584 510 "bytes 1.10.1", 585 511 "http-body-util", 586 - "hyper 1.7.0", 512 + "hyper", 587 513 "hyper-util", 588 514 "native-tls", 589 515 "tokio", ··· 597 523 source = "registry+https://github.com/rust-lang/crates.io-index" 598 524 checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" 599 525 dependencies = [ 600 - "base64 0.22.1", 526 + "base64", 601 527 "bytes 1.10.1", 602 528 "futures-channel", 603 529 "futures-core", 604 530 "futures-util", 605 531 "http", 606 532 "http-body", 607 - "hyper 1.7.0", 533 + "hyper", 608 534 "ipnet", 609 535 "libc", 610 - "percent-encoding 2.3.2", 536 + "percent-encoding", 611 537 "pin-project-lite", 612 538 "socket2 0.6.0", 613 539 "system-configuration", ··· 654 580 "icu_normalizer_data", 655 581 "icu_properties", 656 582 "icu_provider", 657 - "smallvec 1.15.1", 583 + "smallvec", 658 584 "zerovec", 659 585 ] 660 586 ··· 705 631 706 632 [[package]] 707 633 name = "idna" 708 - version = "0.1.5" 709 - source = "registry+https://github.com/rust-lang/crates.io-index" 710 - checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" 711 - dependencies = [ 712 - "matches", 713 - "unicode-bidi", 714 - "unicode-normalization", 715 - ] 716 - 717 - [[package]] 718 - name = "idna" 719 634 version = "0.2.3" 720 635 source = "registry+https://github.com/rust-lang/crates.io-index" 721 636 checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" ··· 732 647 checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" 733 648 dependencies = [ 734 649 "idna_adapter", 735 - "smallvec 1.15.1", 650 + "smallvec", 736 651 "utf8_iter", 737 652 ] 738 653 ··· 846 761 ] 847 762 848 763 [[package]] 849 - name = "language-tags" 850 - version = "0.2.2" 851 - source = "registry+https://github.com/rust-lang/crates.io-index" 852 - checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" 853 - 854 - [[package]] 855 764 name = "lazy_static" 856 765 version = "1.5.0" 857 766 source = "registry+https://github.com/rust-lang/crates.io-index" 858 767 checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 768 + 769 + [[package]] 770 + name = "lazycell" 771 + version = "1.3.0" 772 + source = "registry+https://github.com/rust-lang/crates.io-index" 773 + checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" 859 774 860 775 [[package]] 861 776 name = "libc" ··· 883 798 884 799 [[package]] 885 800 name = "lock_api" 886 - version = "0.3.4" 887 - source = "registry+https://github.com/rust-lang/crates.io-index" 888 - checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" 889 - dependencies = [ 890 - "scopeguard", 891 - ] 892 - 893 - [[package]] 894 - name = "lock_api" 895 801 version = "0.4.13" 896 802 source = "registry+https://github.com/rust-lang/crates.io-index" 897 803 checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" 898 804 dependencies = [ 899 - "autocfg 1.5.0", 805 + "autocfg", 900 806 "scopeguard", 901 807 ] 902 808 903 809 [[package]] 904 810 name = "log" 905 - version = "0.3.9" 906 - source = "registry+https://github.com/rust-lang/crates.io-index" 907 - checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" 908 - dependencies = [ 909 - "log 0.4.28", 910 - ] 911 - 912 - [[package]] 913 - name = "log" 914 811 version = "0.4.28" 915 812 source = "registry+https://github.com/rust-lang/crates.io-index" 916 813 checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" ··· 931 828 checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" 932 829 933 830 [[package]] 934 - name = "maybe-uninit" 935 - version = "2.0.0" 936 - source = "registry+https://github.com/rust-lang/crates.io-index" 937 - checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" 938 - 939 - [[package]] 940 831 name = "memchr" 941 832 version = "2.7.5" 942 833 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 944 835 945 836 [[package]] 946 837 name = "mime" 947 - version = "0.2.6" 948 - source = "registry+https://github.com/rust-lang/crates.io-index" 949 - checksum = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0" 950 - dependencies = [ 951 - "log 0.3.9", 952 - ] 953 - 954 - [[package]] 955 - name = "mime" 956 838 version = "0.3.17" 957 839 source = "registry+https://github.com/rust-lang/crates.io-index" 958 840 checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" ··· 978 860 "iovec", 979 861 "kernel32-sys", 980 862 "libc", 981 - "log 0.4.28", 863 + "log", 982 864 "miow", 983 865 "net2", 984 866 "slab", ··· 997 879 ] 998 880 999 881 [[package]] 882 + name = "mio-extras" 883 + version = "2.0.6" 884 + source = "registry+https://github.com/rust-lang/crates.io-index" 885 + checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" 886 + dependencies = [ 887 + "lazycell", 888 + "log", 889 + "mio 0.6.23", 890 + "slab", 891 + ] 892 + 893 + [[package]] 1000 894 name = "miow" 1001 895 version = "0.2.2" 1002 896 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1015 909 checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" 1016 910 dependencies = [ 1017 911 "libc", 1018 - "log 0.4.28", 912 + "log", 1019 913 "openssl", 1020 914 "openssl-probe", 1021 915 "openssl-sys", ··· 1037 931 ] 1038 932 1039 933 [[package]] 1040 - name = "num_cpus" 1041 - version = "1.17.0" 1042 - source = "registry+https://github.com/rust-lang/crates.io-index" 1043 - checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" 1044 - dependencies = [ 1045 - "hermit-abi", 1046 - "libc", 1047 - ] 1048 - 1049 - [[package]] 1050 934 name = "object" 1051 935 version = "0.36.7" 1052 936 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1113 997 1114 998 [[package]] 1115 999 name = "parking_lot" 1116 - version = "0.9.0" 1117 - source = "registry+https://github.com/rust-lang/crates.io-index" 1118 - checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" 1119 - dependencies = [ 1120 - "lock_api 0.3.4", 1121 - "parking_lot_core 0.6.3", 1122 - "rustc_version", 1123 - ] 1124 - 1125 - [[package]] 1126 - name = "parking_lot" 1127 1000 version = "0.11.2" 1128 1001 source = "registry+https://github.com/rust-lang/crates.io-index" 1129 1002 checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" 1130 1003 dependencies = [ 1131 1004 "instant", 1132 - "lock_api 0.4.13", 1133 - "parking_lot_core 0.8.6", 1134 - ] 1135 - 1136 - [[package]] 1137 - name = "parking_lot_core" 1138 - version = "0.6.3" 1139 - source = "registry+https://github.com/rust-lang/crates.io-index" 1140 - checksum = "bda66b810a62be75176a80873726630147a5ca780cd33921e0b5709033e66b0a" 1141 - dependencies = [ 1142 - "cfg-if 0.1.10", 1143 - "cloudabi", 1144 - "libc", 1145 - "redox_syscall 0.1.57", 1146 - "rustc_version", 1147 - "smallvec 0.6.14", 1148 - "winapi 0.3.9", 1005 + "lock_api", 1006 + "parking_lot_core", 1149 1007 ] 1150 1008 1151 1009 [[package]] ··· 1157 1015 "cfg-if 1.0.3", 1158 1016 "instant", 1159 1017 "libc", 1160 - "redox_syscall 0.2.16", 1161 - "smallvec 1.15.1", 1018 + "redox_syscall", 1019 + "smallvec", 1162 1020 "winapi 0.3.9", 1163 1021 ] 1164 - 1165 - [[package]] 1166 - name = "percent-encoding" 1167 - version = "1.0.1" 1168 - source = "registry+https://github.com/rust-lang/crates.io-index" 1169 - checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" 1170 1022 1171 1023 [[package]] 1172 1024 name = "percent-encoding" ··· 1236 1088 1237 1089 [[package]] 1238 1090 name = "rand" 1239 - version = "0.6.5" 1091 + version = "0.7.3" 1240 1092 source = "registry+https://github.com/rust-lang/crates.io-index" 1241 - checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" 1093 + checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" 1242 1094 dependencies = [ 1243 - "autocfg 0.1.8", 1095 + "getrandom 0.1.16", 1244 1096 "libc", 1245 - "rand_chacha 0.1.1", 1246 - "rand_core 0.4.2", 1097 + "rand_chacha 0.2.2", 1098 + "rand_core 0.5.1", 1247 1099 "rand_hc", 1248 - "rand_isaac", 1249 - "rand_jitter", 1250 - "rand_os", 1251 - "rand_pcg", 1252 - "rand_xorshift", 1253 - "winapi 0.3.9", 1254 1100 ] 1255 1101 1256 1102 [[package]] ··· 1266 1112 1267 1113 [[package]] 1268 1114 name = "rand_chacha" 1269 - version = "0.1.1" 1115 + version = "0.2.2" 1270 1116 source = "registry+https://github.com/rust-lang/crates.io-index" 1271 - checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" 1117 + checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" 1272 1118 dependencies = [ 1273 - "autocfg 0.1.8", 1274 - "rand_core 0.3.1", 1119 + "ppv-lite86", 1120 + "rand_core 0.5.1", 1275 1121 ] 1276 1122 1277 1123 [[package]] ··· 1286 1132 1287 1133 [[package]] 1288 1134 name = "rand_core" 1289 - version = "0.3.1" 1135 + version = "0.5.1" 1290 1136 source = "registry+https://github.com/rust-lang/crates.io-index" 1291 - checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" 1137 + checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 1292 1138 dependencies = [ 1293 - "rand_core 0.4.2", 1139 + "getrandom 0.1.16", 1294 1140 ] 1295 1141 1296 1142 [[package]] 1297 1143 name = "rand_core" 1298 - version = "0.4.2" 1299 - source = "registry+https://github.com/rust-lang/crates.io-index" 1300 - checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" 1301 - 1302 - [[package]] 1303 - name = "rand_core" 1304 1144 version = "0.6.4" 1305 1145 source = "registry+https://github.com/rust-lang/crates.io-index" 1306 1146 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" ··· 1310 1150 1311 1151 [[package]] 1312 1152 name = "rand_hc" 1313 - version = "0.1.0" 1314 - source = "registry+https://github.com/rust-lang/crates.io-index" 1315 - checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" 1316 - dependencies = [ 1317 - "rand_core 0.3.1", 1318 - ] 1319 - 1320 - [[package]] 1321 - name = "rand_isaac" 1322 - version = "0.1.1" 1323 - source = "registry+https://github.com/rust-lang/crates.io-index" 1324 - checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" 1325 - dependencies = [ 1326 - "rand_core 0.3.1", 1327 - ] 1328 - 1329 - [[package]] 1330 - name = "rand_jitter" 1331 - version = "0.1.4" 1153 + version = "0.2.0" 1332 1154 source = "registry+https://github.com/rust-lang/crates.io-index" 1333 - checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" 1155 + checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 1334 1156 dependencies = [ 1335 - "libc", 1336 - "rand_core 0.4.2", 1337 - "winapi 0.3.9", 1157 + "rand_core 0.5.1", 1338 1158 ] 1339 1159 1340 1160 [[package]] 1341 - name = "rand_os" 1342 - version = "0.1.3" 1343 - source = "registry+https://github.com/rust-lang/crates.io-index" 1344 - checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" 1345 - dependencies = [ 1346 - "cloudabi", 1347 - "fuchsia-cprng", 1348 - "libc", 1349 - "rand_core 0.4.2", 1350 - "rdrand", 1351 - "winapi 0.3.9", 1352 - ] 1353 - 1354 - [[package]] 1355 - name = "rand_pcg" 1356 - version = "0.1.2" 1357 - source = "registry+https://github.com/rust-lang/crates.io-index" 1358 - checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" 1359 - dependencies = [ 1360 - "autocfg 0.1.8", 1361 - "rand_core 0.4.2", 1362 - ] 1363 - 1364 - [[package]] 1365 - name = "rand_xorshift" 1366 - version = "0.1.1" 1367 - source = "registry+https://github.com/rust-lang/crates.io-index" 1368 - checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" 1369 - dependencies = [ 1370 - "rand_core 0.3.1", 1371 - ] 1372 - 1373 - [[package]] 1374 - name = "rdrand" 1375 - version = "0.4.0" 1376 - source = "registry+https://github.com/rust-lang/crates.io-index" 1377 - checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" 1378 - dependencies = [ 1379 - "rand_core 0.3.1", 1380 - ] 1381 - 1382 - [[package]] 1383 - name = "redox_syscall" 1384 - version = "0.1.57" 1385 - source = "registry+https://github.com/rust-lang/crates.io-index" 1386 - checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" 1387 - 1388 - [[package]] 1389 1161 name = "redox_syscall" 1390 1162 version = "0.2.16" 1391 1163 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1400 1172 source = "registry+https://github.com/rust-lang/crates.io-index" 1401 1173 checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" 1402 1174 dependencies = [ 1403 - "base64 0.22.1", 1175 + "base64", 1404 1176 "bytes 1.10.1", 1405 1177 "encoding_rs", 1406 1178 "futures-channel", ··· 1410 1182 "http", 1411 1183 "http-body", 1412 1184 "http-body-util", 1413 - "hyper 1.7.0", 1185 + "hyper", 1414 1186 "hyper-rustls", 1415 1187 "hyper-tls", 1416 1188 "hyper-util", 1417 1189 "js-sys", 1418 - "log 0.4.28", 1419 - "mime 0.3.17", 1190 + "log", 1191 + "mime", 1420 1192 "native-tls", 1421 - "percent-encoding 2.3.2", 1193 + "percent-encoding", 1422 1194 "pin-project-lite", 1423 1195 "rustls-pki-types", 1424 1196 "serde", ··· 1430 1202 "tower", 1431 1203 "tower-http", 1432 1204 "tower-service", 1433 - "url 2.5.7", 1205 + "url", 1434 1206 "wasm-bindgen", 1435 1207 "wasm-bindgen-futures", 1436 1208 "web-sys", ··· 1463 1235 checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" 1464 1236 1465 1237 [[package]] 1466 - name = "rustc_version" 1467 - version = "0.2.3" 1468 - source = "registry+https://github.com/rust-lang/crates.io-index" 1469 - checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" 1470 - dependencies = [ 1471 - "semver", 1472 - ] 1473 - 1474 - [[package]] 1475 1238 name = "rustix" 1476 1239 version = "1.0.8" 1477 1240 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1530 1293 checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 1531 1294 1532 1295 [[package]] 1533 - name = "safemem" 1534 - version = "0.3.3" 1535 - source = "registry+https://github.com/rust-lang/crates.io-index" 1536 - checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" 1537 - 1538 - [[package]] 1539 1296 name = "schannel" 1540 1297 version = "0.1.27" 1541 1298 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1574 1331 ] 1575 1332 1576 1333 [[package]] 1577 - name = "semver" 1578 - version = "0.9.0" 1579 - source = "registry+https://github.com/rust-lang/crates.io-index" 1580 - checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" 1581 - dependencies = [ 1582 - "semver-parser", 1583 - ] 1584 - 1585 - [[package]] 1586 - name = "semver-parser" 1587 - version = "0.7.0" 1588 - source = "registry+https://github.com/rust-lang/crates.io-index" 1589 - checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" 1590 - 1591 - [[package]] 1592 1334 name = "serde" 1593 1335 version = "1.0.219" 1594 1336 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1658 1400 1659 1401 [[package]] 1660 1402 name = "smallvec" 1661 - version = "0.6.14" 1662 - source = "registry+https://github.com/rust-lang/crates.io-index" 1663 - checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0" 1664 - dependencies = [ 1665 - "maybe-uninit", 1666 - ] 1667 - 1668 - [[package]] 1669 - name = "smallvec" 1670 1403 version = "1.15.1" 1671 1404 source = "registry+https://github.com/rust-lang/crates.io-index" 1672 1405 checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" ··· 1774 1507 "json", 1775 1508 "reqwest", 1776 1509 "trust-dns-resolver", 1777 - "websocket", 1510 + "ws", 1778 1511 ] 1779 1512 1780 1513 [[package]] ··· 1811 1544 ] 1812 1545 1813 1546 [[package]] 1814 - name = "time" 1815 - version = "0.1.45" 1816 - source = "registry+https://github.com/rust-lang/crates.io-index" 1817 - checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" 1818 - dependencies = [ 1819 - "libc", 1820 - "wasi 0.10.0+wasi-snapshot-preview1", 1821 - "winapi 0.3.9", 1822 - ] 1823 - 1824 - [[package]] 1825 1547 name = "tinystr" 1826 1548 version = "0.8.1" 1827 1549 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1864 1586 ] 1865 1587 1866 1588 [[package]] 1867 - name = "tokio-codec" 1868 - version = "0.1.2" 1869 - source = "registry+https://github.com/rust-lang/crates.io-index" 1870 - checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" 1871 - dependencies = [ 1872 - "bytes 0.4.12", 1873 - "futures", 1874 - "tokio-io", 1875 - ] 1876 - 1877 - [[package]] 1878 - name = "tokio-executor" 1879 - version = "0.1.10" 1880 - source = "registry+https://github.com/rust-lang/crates.io-index" 1881 - checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" 1882 - dependencies = [ 1883 - "crossbeam-utils", 1884 - "futures", 1885 - ] 1886 - 1887 - [[package]] 1888 - name = "tokio-io" 1889 - version = "0.1.13" 1890 - source = "registry+https://github.com/rust-lang/crates.io-index" 1891 - checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" 1892 - dependencies = [ 1893 - "bytes 0.4.12", 1894 - "futures", 1895 - "log 0.4.28", 1896 - ] 1897 - 1898 - [[package]] 1899 1589 name = "tokio-native-tls" 1900 1590 version = "0.3.1" 1901 1591 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1906 1596 ] 1907 1597 1908 1598 [[package]] 1909 - name = "tokio-reactor" 1910 - version = "0.1.12" 1911 - source = "registry+https://github.com/rust-lang/crates.io-index" 1912 - checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" 1913 - dependencies = [ 1914 - "crossbeam-utils", 1915 - "futures", 1916 - "lazy_static", 1917 - "log 0.4.28", 1918 - "mio 0.6.23", 1919 - "num_cpus", 1920 - "parking_lot 0.9.0", 1921 - "slab", 1922 - "tokio-executor", 1923 - "tokio-io", 1924 - "tokio-sync", 1925 - ] 1926 - 1927 - [[package]] 1928 1599 name = "tokio-rustls" 1929 1600 version = "0.26.2" 1930 1601 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1932 1603 dependencies = [ 1933 1604 "rustls", 1934 1605 "tokio", 1935 - ] 1936 - 1937 - [[package]] 1938 - name = "tokio-sync" 1939 - version = "0.1.8" 1940 - source = "registry+https://github.com/rust-lang/crates.io-index" 1941 - checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" 1942 - dependencies = [ 1943 - "fnv", 1944 - "futures", 1945 - ] 1946 - 1947 - [[package]] 1948 - name = "tokio-tcp" 1949 - version = "0.1.4" 1950 - source = "registry+https://github.com/rust-lang/crates.io-index" 1951 - checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" 1952 - dependencies = [ 1953 - "bytes 0.4.12", 1954 - "futures", 1955 - "iovec", 1956 - "mio 0.6.23", 1957 - "tokio-io", 1958 - "tokio-reactor", 1959 - ] 1960 - 1961 - [[package]] 1962 - name = "tokio-tls" 1963 - version = "0.2.1" 1964 - source = "registry+https://github.com/rust-lang/crates.io-index" 1965 - checksum = "354b8cd83825b3c20217a9dc174d6a0c67441a2fae5c41bcb1ea6679f6ae0f7c" 1966 - dependencies = [ 1967 - "futures", 1968 - "native-tls", 1969 - "tokio-io", 1970 1606 ] 1971 1607 1972 1608 [[package]] ··· 2047 1683 ] 2048 1684 2049 1685 [[package]] 2050 - name = "traitobject" 2051 - version = "0.1.1" 2052 - source = "registry+https://github.com/rust-lang/crates.io-index" 2053 - checksum = "04a79e25382e2e852e8da874249358d382ebaf259d0d34e75d8db16a7efabbc7" 2054 - 2055 - [[package]] 2056 1686 name = "trust-dns-proto" 2057 1687 version = "0.20.4" 2058 1688 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2068 1698 "idna 0.2.3", 2069 1699 "ipnet", 2070 1700 "lazy_static", 2071 - "log 0.4.28", 1701 + "log", 2072 1702 "rand 0.8.5", 2073 - "smallvec 1.15.1", 1703 + "smallvec", 2074 1704 "thiserror", 2075 1705 "tinyvec", 2076 1706 "tokio", 2077 - "url 2.5.7", 1707 + "url", 2078 1708 ] 2079 1709 2080 1710 [[package]] ··· 2087 1717 "futures-util", 2088 1718 "ipconfig", 2089 1719 "lazy_static", 2090 - "log 0.4.28", 1720 + "log", 2091 1721 "lru-cache", 2092 - "parking_lot 0.11.2", 1722 + "parking_lot", 2093 1723 "resolv-conf", 2094 - "smallvec 1.15.1", 1724 + "smallvec", 2095 1725 "thiserror", 2096 1726 "tokio", 2097 1727 "trust-dns-proto", ··· 2104 1734 checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 2105 1735 2106 1736 [[package]] 2107 - name = "typeable" 2108 - version = "0.1.2" 2109 - source = "registry+https://github.com/rust-lang/crates.io-index" 2110 - checksum = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887" 2111 - 2112 - [[package]] 2113 1737 name = "typenum" 2114 1738 version = "1.18.0" 2115 1739 source = "registry+https://github.com/rust-lang/crates.io-index" 2116 1740 checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" 2117 - 2118 - [[package]] 2119 - name = "unicase" 2120 - version = "1.4.2" 2121 - source = "registry+https://github.com/rust-lang/crates.io-index" 2122 - checksum = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" 2123 - dependencies = [ 2124 - "version_check", 2125 - ] 2126 1741 2127 1742 [[package]] 2128 1743 name = "unicode-bidi" ··· 2153 1768 2154 1769 [[package]] 2155 1770 name = "url" 2156 - version = "1.7.2" 2157 - source = "registry+https://github.com/rust-lang/crates.io-index" 2158 - checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" 2159 - dependencies = [ 2160 - "idna 0.1.5", 2161 - "matches", 2162 - "percent-encoding 1.0.1", 2163 - ] 2164 - 2165 - [[package]] 2166 - name = "url" 2167 1771 version = "2.5.7" 2168 1772 source = "registry+https://github.com/rust-lang/crates.io-index" 2169 1773 checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" 2170 1774 dependencies = [ 2171 1775 "form_urlencoded", 2172 1776 "idna 1.1.0", 2173 - "percent-encoding 2.3.2", 1777 + "percent-encoding", 2174 1778 "serde", 2175 1779 ] 2176 1780 ··· 2187 1791 checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 2188 1792 2189 1793 [[package]] 2190 - name = "version_check" 2191 - version = "0.1.5" 2192 - source = "registry+https://github.com/rust-lang/crates.io-index" 2193 - checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" 2194 - 2195 - [[package]] 2196 1794 name = "want" 2197 1795 version = "0.3.1" 2198 1796 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2203 1801 2204 1802 [[package]] 2205 1803 name = "wasi" 2206 - version = "0.10.0+wasi-snapshot-preview1" 1804 + version = "0.9.0+wasi-snapshot-preview1" 2207 1805 source = "registry+https://github.com/rust-lang/crates.io-index" 2208 - checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" 1806 + checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" 2209 1807 2210 1808 [[package]] 2211 1809 name = "wasi" ··· 2242 1840 checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" 2243 1841 dependencies = [ 2244 1842 "bumpalo", 2245 - "log 0.4.28", 1843 + "log", 2246 1844 "proc-macro2", 2247 1845 "quote", 2248 1846 "syn 2.0.106", ··· 2305 1903 ] 2306 1904 2307 1905 [[package]] 2308 - name = "websocket" 2309 - version = "0.27.1" 2310 - source = "registry+https://github.com/rust-lang/crates.io-index" 2311 - checksum = "319bacd7682c7dfe1444e7cb1aed23bf5b1d837d722925f531e1665bd21a4603" 2312 - dependencies = [ 2313 - "bytes 0.4.12", 2314 - "futures", 2315 - "hyper 0.10.16", 2316 - "native-tls", 2317 - "rand 0.6.5", 2318 - "tokio-codec", 2319 - "tokio-io", 2320 - "tokio-reactor", 2321 - "tokio-tcp", 2322 - "tokio-tls", 2323 - "unicase", 2324 - "url 1.7.2", 2325 - "websocket-base", 2326 - ] 2327 - 2328 - [[package]] 2329 - name = "websocket-base" 2330 - version = "0.26.5" 2331 - source = "registry+https://github.com/rust-lang/crates.io-index" 2332 - checksum = "49aec794b07318993d1db16156d5a9c750120597a5ee40c6b928d416186cb138" 2333 - dependencies = [ 2334 - "base64 0.10.1", 2335 - "bitflags 1.3.2", 2336 - "byteorder", 2337 - "bytes 0.4.12", 2338 - "futures", 2339 - "native-tls", 2340 - "rand 0.6.5", 2341 - "sha-1", 2342 - "tokio-codec", 2343 - "tokio-io", 2344 - "tokio-tcp", 2345 - "tokio-tls", 2346 - ] 2347 - 2348 - [[package]] 2349 1906 name = "widestring" 2350 1907 version = "0.4.3" 2351 1908 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2522 2079 version = "0.6.1" 2523 2080 source = "registry+https://github.com/rust-lang/crates.io-index" 2524 2081 checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" 2082 + 2083 + [[package]] 2084 + name = "ws" 2085 + version = "0.9.2" 2086 + source = "registry+https://github.com/rust-lang/crates.io-index" 2087 + checksum = "25fe90c75f236a0a00247d5900226aea4f2d7b05ccc34da9e7a8880ff59b5848" 2088 + dependencies = [ 2089 + "byteorder", 2090 + "bytes 0.4.12", 2091 + "httparse", 2092 + "log", 2093 + "mio 0.6.23", 2094 + "mio-extras", 2095 + "rand 0.7.3", 2096 + "sha-1", 2097 + "slab", 2098 + "url", 2099 + ] 2525 2100 2526 2101 [[package]] 2527 2102 name = "ws2_32-sys"
+1 -1
Cargo.toml
··· 9 9 json = "0.12.4" 10 10 trust-dns-resolver = "0.20.1" 11 11 reqwest = { version = "0.12.23", features = ["blocking"] } 12 - websocket = "0.27.1" 12 + ws = "0.9.2"
+9 -56
src/main.rs
··· 1 - use std::process::Command; 2 - 3 - use websocket::sync::client::ClientBuilder; 4 - 5 1 mod args; 6 2 mod did; 7 3 mod knot; ··· 37 33 "Connecting to `{}`", 38 34 format!("wss://{}/events", knot_server) 39 35 ); 40 - let mut client = match ClientBuilder::new(&format!("wss://{}/events", knot_server)) { 41 - Ok(mut val) => match val.connect(None) { 42 - Ok(val) => val, 43 - Err(_) => { 44 - println!(" Couldn't open a connection"); 45 - return Err(()); 46 - } 47 - }, 48 - Err(_) => { 49 - println!(" Knot server was malformed."); 50 - return Err(()); 36 + 37 + match ws::connect(format!("ws://{}/events", knot_server), |_out| { 38 + println!(" Connection successful"); 39 + |msg| { 40 + println!("Got message: {}", msg); 41 + Ok(()) 51 42 } 43 + }) { 44 + Ok(_) => {}, 45 + Err(err) => println!(" Connection failed: {}", err) 52 46 }; 53 - println!(" Connected successfully."); 54 - 55 - // on event: 56 - for message in client.incoming_messages() { 57 - if let Ok(ref val) = message 58 - && let websocket::OwnedMessage::Text(body) = val 59 - { 60 - // parse json 61 - let body = match json::parse(&body) { 62 - Ok(val) => val, 63 - Err(_) => { 64 - println!(" Invalid body. Skipping message"); 65 - continue; 66 - } 67 - }; 68 - 69 - // filter by did and reponame 70 - if let Some(repo_did) = body["event"]["repoDid"].as_str() 71 - && let Some(repo) = body["event"]["repoName"].as_str() 72 - && repo_did != &did_doc.did 73 - && repo != &config.repo_name 74 - { 75 - // repo doesnt match so skip 76 - continue; 77 - } 78 - 79 - println!(" Executing `/bin/sh -c {}`", &config.shell); 80 - 81 - // exec shell command in /bin/sh 82 - match Command::new("/bin/sh") 83 - .arg("-c") 84 - .arg(&config.shell) 85 - .output() 86 - { 87 - Ok(val) => val, 88 - Err(_) => continue, 89 - }; 90 - } else if let Err(err) = message { 91 - println!(" Got websocket error: {}", err) 92 - } 93 - } 94 47 95 48 return Ok(()); 96 49 }