aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock604
-rw-r--r--Cargo.toml12
-rw-r--r--fake-readme.md2
-rw-r--r--src/main.rs10
-rw-r--r--src/pages/files.rs20
-rw-r--r--src/pages/mod.rs38
-rw-r--r--src/pages/overview.rs24
-rw-r--r--src/templ_data/files.rs13
-rw-r--r--src/templ_data/mod.rs18
-rw-r--r--src/templ_data/overview.rs11
-rw-r--r--static/main.css20
-rw-r--r--supergit/Cargo.toml9
-rw-r--r--supergit/src/branch.rs22
-rw-r--r--supergit/src/commit.rs11
-rw-r--r--supergit/src/files.rs7
-rw-r--r--supergit/src/lib.rs39
-rw-r--r--supergit/src/raw/mod.rs39
-rw-r--r--templates/core.html26
-rw-r--r--templates/files.html17
-rw-r--r--templates/index.html34
20 files changed, 631 insertions, 345 deletions
diff --git a/Cargo.lock b/Cargo.lock
index cfab242..426ee05 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -16,15 +16,31 @@ dependencies = [
]
[[package]]
+name = "actix-codec"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78d1833b3838dbe990df0f1f87baf640cf6146e898166afe401839d1b001e570"
+dependencies = [
+ "bitflags",
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "log",
+ "pin-project 0.4.27",
+ "tokio",
+ "tokio-util 0.3.1",
+]
+
+[[package]]
name = "actix-connect"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c95cc9569221e9802bf4c377f6c18b90ef10227d787611decf79fd47d2a8e76c"
dependencies = [
- "actix-codec",
+ "actix-codec 0.2.0",
"actix-rt",
"actix-service",
- "actix-utils",
+ "actix-utils 1.0.6",
"derive_more",
"either",
"futures",
@@ -61,12 +77,12 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c16664cc4fdea8030837ad5a845eb231fb93fc3c5c171edfefb52fad92ce9019"
dependencies = [
- "actix-codec",
+ "actix-codec 0.2.0",
"actix-connect",
"actix-rt",
"actix-service",
"actix-threadpool",
- "actix-utils",
+ "actix-utils 1.0.6",
"base64",
"bitflags",
"brotli2",
@@ -91,7 +107,7 @@ dependencies = [
"log",
"mime",
"percent-encoding",
- "pin-project",
+ "pin-project 0.4.27",
"rand",
"regex",
"serde",
@@ -109,14 +125,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a60f9ba7c4e6df97f3aacb14bb5c0cd7d98a49dcbaed0d7f292912ad9a6a3ed2"
dependencies = [
"quote 1.0.7",
- "syn 1.0.32",
+ "syn 1.0.48",
]
[[package]]
name = "actix-router"
-version = "0.2.4"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d7a10ca4d94e8c8e7a87c5173aba1b97ba9a6563ca02b0e1cd23531093d3ec8"
+checksum = "bbd1f7dbda1645bf7da33554db60891755f6c01c1b2169e2f4c492098d30c235"
dependencies = [
"bytestring",
"http",
@@ -142,14 +158,14 @@ dependencies = [
[[package]]
name = "actix-server"
-version = "1.0.3"
+version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6d74b464215a473c973a2d7d03a69cc10f4ce1f4b38a7659c5193dc5c675630"
+checksum = "45407e6e672ca24784baa667c5d32ef109ccdd8d5e0b5ebb9ef8a67f4dfb708e"
dependencies = [
- "actix-codec",
+ "actix-codec 0.3.0",
"actix-rt",
"actix-service",
- "actix-utils",
+ "actix-utils 2.0.0",
"futures-channel",
"futures-util",
"log",
@@ -162,12 +178,12 @@ dependencies = [
[[package]]
name = "actix-service"
-version = "1.0.5"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3e4fc95dfa7e24171b2d0bb46b85f8ab0e8499e4e3caec691fc4ea65c287564"
+checksum = "0052435d581b5be835d11f4eb3bce417c8af18d87ddf8ace99f8e67e595882bb"
dependencies = [
"futures-util",
- "pin-project",
+ "pin-project 0.4.27",
]
[[package]]
@@ -186,9 +202,9 @@ dependencies = [
[[package]]
name = "actix-threadpool"
-version = "0.3.2"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91164716d956745c79dcea5e66d2aa04506549958accefcede5368c70f2fd4ff"
+checksum = "d209f04d002854b9afd3743032a27b066158817965bf5d036824d19ac2cc0e30"
dependencies = [
"derive_more",
"futures-channel",
@@ -205,10 +221,10 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4e5b4faaf105e9a6d389c606c298dcdb033061b00d532af9df56ff3a54995a8"
dependencies = [
- "actix-codec",
+ "actix-codec 0.2.0",
"actix-rt",
"actix-service",
- "actix-utils",
+ "actix-utils 1.0.6",
"derive_more",
"either",
"futures",
@@ -221,7 +237,7 @@ version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcf8f5631bf01adec2267808f00e228b761c60c0584cc9fa0b5364f41d147f4e"
dependencies = [
- "actix-codec",
+ "actix-codec 0.2.0",
"actix-rt",
"actix-service",
"bitflags",
@@ -229,7 +245,27 @@ dependencies = [
"either",
"futures",
"log",
- "pin-project",
+ "pin-project 0.4.27",
+ "slab",
+]
+
+[[package]]
+name = "actix-utils"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e9022dec56632d1d7979e59af14f0597a28a830a9c1c7fec8b2327eb9f16b5a"
+dependencies = [
+ "actix-codec 0.3.0",
+ "actix-rt",
+ "actix-service",
+ "bitflags",
+ "bytes",
+ "either",
+ "futures-channel",
+ "futures-sink",
+ "futures-util",
+ "log",
+ "pin-project 0.4.27",
"slab",
]
@@ -239,7 +275,7 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3158e822461040822f0dbf1735b9c2ce1f95f93b651d7a7aded00b1efbb1f635"
dependencies = [
- "actix-codec",
+ "actix-codec 0.2.0",
"actix-http",
"actix-macros",
"actix-router",
@@ -249,7 +285,7 @@ dependencies = [
"actix-testing",
"actix-threadpool",
"actix-tls",
- "actix-utils",
+ "actix-utils 1.0.6",
"actix-web-codegen",
"awc",
"bytes",
@@ -260,7 +296,7 @@ dependencies = [
"log",
"mime",
"net2",
- "pin-project",
+ "pin-project 0.4.27",
"regex",
"serde",
"serde_json",
@@ -275,31 +311,31 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a71bf475cbe07281d0b3696abb48212db118e7e23219f13596ce865235ff5766"
dependencies = [
- "proc-macro2 1.0.18",
+ "proc-macro2 1.0.24",
"quote 1.0.7",
- "syn 1.0.32",
+ "syn 1.0.48",
]
[[package]]
name = "addr2line"
-version = "0.12.2"
+version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "602d785912f476e480434627e8732e6766b760c045bbf897d9dfaa9f4fbd399c"
+checksum = "1b6a2d3371669ab3ca9797670853d61402b03d0b4b9ebf33d677dfa720203072"
dependencies = [
"gimli",
]
[[package]]
-name = "adler32"
-version = "1.1.0"
+name = "adler"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567b077b825e468cc974f0020d4082ee6e03132512f207ef1a02fd5d00d1f32d"
+checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
[[package]]
name = "aho-corasick"
-version = "0.7.10"
+version = "0.7.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
+checksum = "b476ce7103678b0c6d3d395dbbae31d48ff910bd28be979ba5d48c6351131d0d"
dependencies = [
"memchr",
]
@@ -356,13 +392,13 @@ dependencies = [
[[package]]
name = "async-trait"
-version = "0.1.36"
+version = "0.1.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a265e3abeffdce30b2e26b7a11b222fe37c6067404001b434101457d0385eb92"
+checksum = "b246867b8b3b6ae56035f1eb1ed557c1d8eae97f0d53696138a50fa0e3a3b8c0"
dependencies = [
- "proc-macro2 1.0.18",
+ "proc-macro2 1.0.24",
"quote 1.0.7",
- "syn 1.0.32",
+ "syn 1.0.48",
]
[[package]]
@@ -373,14 +409,14 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
dependencies = [
"hermit-abi",
"libc",
- "winapi 0.3.8",
+ "winapi 0.3.9",
]
[[package]]
name = "autocfg"
-version = "1.0.0"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
+checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
[[package]]
name = "awc"
@@ -388,7 +424,7 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7601d4d1d7ef2335d6597a41b5fe069f6ab799b85f53565ab390e7b7065aac5"
dependencies = [
- "actix-codec",
+ "actix-codec 0.2.0",
"actix-http",
"actix-rt",
"actix-service",
@@ -407,12 +443,12 @@ dependencies = [
[[package]]
name = "backtrace"
-version = "0.3.49"
+version = "0.3.53"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05100821de9e028f12ae3d189176b41ee198341eb8f369956407fea2f5cc666c"
+checksum = "707b586e0e2f247cbde68cdd2c3ce69ea7b7be43e1c5b426e37c9319c4b9838e"
dependencies = [
"addr2line",
- "cfg-if",
+ "cfg-if 1.0.0",
"libc",
"miniz_oxide",
"object",
@@ -459,12 +495,9 @@ checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
[[package]]
name = "bytes"
-version = "0.5.5"
+version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "118cf036fbb97d0816e3c34b2d7a1e8cfc60f68fcf63d550ddbe9bd5f59c213b"
-dependencies = [
- "loom",
-]
+checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
[[package]]
name = "bytestring"
@@ -477,9 +510,9 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.0.54"
+version = "1.0.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bbb73db36c1246e9034e307d0fba23f9a2e251faa47ade70c1bd252220c8311"
+checksum = "ed67cbde08356238e75fc4656be4749481eeffb09e19f320a25237d5221c985d"
dependencies = [
"jobserver",
]
@@ -491,21 +524,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
name = "chrono"
-version = "0.4.11"
+version = "0.4.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2"
+checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
dependencies = [
+ "libc",
"num-integer",
"num-traits",
"time",
+ "winapi 0.3.9",
]
[[package]]
name = "cloudabi"
-version = "0.0.3"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+checksum = "4344512281c643ae7638bbabc3af17a11307803ec8f0fcad9fae512a8bf36467"
dependencies = [
"bitflags",
]
@@ -518,22 +559,22 @@ checksum = "a2df960f5d869b2dd8532793fde43eb5427cceb126c929747a26823ab0eeb536"
[[package]]
name = "crc32fast"
-version = "1.2.0"
+version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
+checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
]
[[package]]
name = "derive_more"
-version = "0.99.8"
+version = "0.99.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc655351f820d774679da6cdc23355a93de496867d8203496675162e17b1d671"
+checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c"
dependencies = [
- "proc-macro2 1.0.18",
+ "proc-macro2 1.0.24",
"quote 1.0.7",
- "syn 1.0.32",
+ "syn 1.0.48",
]
[[package]]
@@ -544,29 +585,29 @@ checksum = "134951f4028bdadb9b84baf4232681efbf277da25144b9b0ad65df75946c422b"
[[package]]
name = "either"
-version = "1.5.3"
+version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
+checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
[[package]]
name = "encoding_rs"
-version = "0.8.23"
+version = "0.8.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8ac63f94732332f44fe654443c46f6375d1939684c17b0afb6cb56b0456e171"
+checksum = "a51b8cf747471cb9499b6d59e59b0444f4c90eba8968c4e44874e92b5b64ace2"
dependencies = [
- "cfg-if",
+ "cfg-if 0.1.10",
]
[[package]]
name = "enum-as-inner"
-version = "0.3.2"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc4bfcfacb61d231109d1d55202c1f33263319668b168843e02ad4652725ec9c"
+checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595"
dependencies = [
"heck",
- "proc-macro2 1.0.18",
+ "proc-macro2 1.0.24",
"quote 1.0.7",
- "syn 1.0.32",
+ "syn 1.0.48",
]
[[package]]
@@ -598,19 +639,19 @@ version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
dependencies = [
- "proc-macro2 1.0.18",
+ "proc-macro2 1.0.24",
"quote 1.0.7",
- "syn 1.0.32",
+ "syn 1.0.48",
"synstructure",
]
[[package]]
name = "flate2"
-version = "1.0.14"
+version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2cfff41391129e0a856d6d822600b8d71179d46879e310417eb9c762eb178b42"
+checksum = "da80be589a72651dcda34d8b35bcdc9b7254ad06325611074d9cc0fbb19f60ee"
dependencies = [
- "cfg-if",
+ "cfg-if 0.1.10",
"crc32fast",
"libc",
"miniz_oxide",
@@ -640,9 +681,9 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
[[package]]
name = "futures"
-version = "0.3.5"
+version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613"
+checksum = "95314d38584ffbfda215621d723e0a3906f032e03ae5551e650058dac83d4797"
dependencies = [
"futures-channel",
"futures-core",
@@ -655,9 +696,9 @@ dependencies = [
[[package]]
name = "futures-channel"
-version = "0.3.5"
+version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
+checksum = "0448174b01148032eed37ac4aed28963aaaa8cfa93569a08e5b479bbc6c2c151"
dependencies = [
"futures-core",
"futures-sink",
@@ -665,15 +706,15 @@ dependencies = [
[[package]]
name = "futures-core"
-version = "0.3.5"
+version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"
+checksum = "18eaa56102984bed2c88ea39026cff3ce3b4c7f508ca970cedf2450ea10d4e46"
[[package]]
name = "futures-executor"
-version = "0.3.5"
+version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314"
+checksum = "f5f8e0c9258abaea85e78ebdda17ef9666d390e987f006be6080dfe354b708cb"
dependencies = [
"futures-core",
"futures-task",
@@ -682,42 +723,42 @@ dependencies = [
[[package]]
name = "futures-io"
-version = "0.3.5"
+version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"
+checksum = "6e1798854a4727ff944a7b12aa999f58ce7aa81db80d2dfaaf2ba06f065ddd2b"
[[package]]
name = "futures-macro"
-version = "0.3.5"
+version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
+checksum = "e36fccf3fc58563b4a14d265027c627c3b665d7fed489427e88e7cc929559efe"
dependencies = [
"proc-macro-hack",
- "proc-macro2 1.0.18",
+ "proc-macro2 1.0.24",
"quote 1.0.7",
- "syn 1.0.32",
+ "syn 1.0.48",
]
[[package]]
name = "futures-sink"
-version = "0.3.5"
+version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"
+checksum = "0e3ca3f17d6e8804ae5d3df7a7d35b2b3a6fe89dac84b31872720fc3060a0b11"
[[package]]
name = "futures-task"
-version = "0.3.5"
+version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
+checksum = "96d502af37186c4fef99453df03e374683f8a1eec9dcc1e66b3b82dc8278ce3c"
dependencies = [
"once_cell",
]
[[package]]
name = "futures-util"
-version = "0.3.5"
+version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
+checksum = "abcb44342f62e6f3e8ac427b8aa815f724fd705dfad060b18ac7866c15bb8e34"
dependencies = [
"futures-channel",
"futures-core",
@@ -726,7 +767,7 @@ dependencies = [
"futures-sink",
"futures-task",
"memchr",
- "pin-project",
+ "pin-project 1.0.1",
"pin-utils",
"proc-macro-hack",
"proc-macro-nested",
@@ -743,34 +784,21 @@ dependencies = [
]
[[package]]
-name = "generator"
-version = "0.6.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "add72f17bb81521258fcc8a7a3245b1e184e916bfbe34f0ea89558f440df5c68"
-dependencies = [
- "cc",
- "libc",
- "log",
- "rustc_version",
- "winapi 0.3.8",
-]
-
-[[package]]
name = "getrandom"
-version = "0.1.14"
+version = "0.1.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
+checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
dependencies = [
- "cfg-if",
+ "cfg-if 0.1.10",
"libc",
- "wasi",
+ "wasi 0.9.0+wasi-snapshot-preview1",
]
[[package]]
name = "gimli"
-version = "0.21.0"
+version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c"
+checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724"
[[package]]
name = "git2"
@@ -789,9 +817,9 @@ dependencies = [
[[package]]
name = "h2"
-version = "0.2.5"
+version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79b7246d7e4b979c03fa093da39cfb3617a96bbeee6310af63991668d7e843ff"
+checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535"
dependencies = [
"bytes",
"fnv",
@@ -800,13 +828,20 @@ dependencies = [
"futures-util",
"http",
"indexmap",
- "log",
"slab",
"tokio",
"tokio-util 0.3.1",
+ "tracing",
+ "tracing-futures",
]
[[package]]
+name = "hashbrown"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
+
+[[package]]
name = "heck"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -817,9 +852,9 @@ dependencies = [
[[package]]
name = "hermit-abi"
-version = "0.1.14"
+version = "0.1.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9586eedd4ce6b3c498bc3b4dd92fc9f11166aa908a914071953768066c67909"
+checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8"
dependencies = [
"libc",
]
@@ -832,7 +867,7 @@ checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
dependencies = [
"libc",
"match_cfg",
- "winapi 0.3.8",
+ "winapi 0.3.9",
]
[[package]]
@@ -880,11 +915,21 @@ dependencies = [
[[package]]
name = "indexmap"
-version = "1.4.0"
+version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c398b2b113b55809ceb9ee3e753fcbac793f1956663f3c36549c1346015c2afe"
+checksum = "55e2e4c765aa53a0424761bf9f41aa7a6ac1efa87238f59560640e27fca028f2"
dependencies = [
"autocfg",
+ "hashbrown",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb1fc4429a33e1f80d41dc9fea4d108a88bec1de8053878898ae448a0b52f613"
+dependencies = [
+ "cfg-if 1.0.0",
]
[[package]]
@@ -904,7 +949,7 @@ checksum = "f7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7"
dependencies = [
"socket2",
"widestring",
- "winapi 0.3.8",
+ "winapi 0.3.9",
"winreg",
]
@@ -947,9 +992,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
-version = "0.2.71"
+version = "0.2.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"
+checksum = "2448f6066e80e3bfc792e9c98bf705b4b0fc6e8ef5b43e5889aff0eaa9c58743"
[[package]]
name = "libgit2-sys"
@@ -967,9 +1012,9 @@ dependencies = [
[[package]]
name = "libssh2-sys"
-version = "0.2.17"
+version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d45f516b9b19ea6c940b9f36d36734062a153a2b4cc9ef31d82c54bb9780f525"
+checksum = "ca46220853ba1c512fc82826d0834d87b06bcd3c2a42241b7de72f3d2fe17056"
dependencies = [
"cc",
"libc",
@@ -981,9 +1026,9 @@ dependencies = [
[[package]]
name = "libz-sys"
-version = "1.0.25"
+version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe"
+checksum = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655"
dependencies = [
"cc",
"libc",
@@ -999,31 +1044,20 @@ checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"
[[package]]
name = "lock_api"
-version = "0.3.4"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
+checksum = "28247cc5a5be2f05fbcd76dd0cf2c7d3b5400cb978a28042abcd4fa0b3f8261c"
dependencies = [
"scopeguard",
]
[[package]]
name = "log"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "loom"
-version = "0.3.4"
+version = "0.4.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ecc775857611e1df29abba5c41355cdf540e7e9d4acfdf0f355eefee82330b7"
+checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
dependencies = [
- "cfg-if",
- "generator",
- "scoped-tls",
+ "cfg-if 0.1.10",
]
[[package]]
@@ -1082,11 +1116,12 @@ dependencies = [
[[package]]
name = "miniz_oxide"
-version = "0.3.7"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
+checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d"
dependencies = [
- "adler32",
+ "adler",
+ "autocfg",
]
[[package]]
@@ -1095,7 +1130,7 @@ version = "0.6.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430"
dependencies = [
- "cfg-if",
+ "cfg-if 0.1.10",
"fuchsia-zircon",
"fuchsia-zircon-sys",
"iovec",
@@ -1133,13 +1168,13 @@ dependencies = [
[[package]]
name = "net2"
-version = "0.2.34"
+version = "0.2.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7"
+checksum = "3ebc3ec692ed7c9a255596c67808dee269f64655d8baf7b4f0638e51ba1d6853"
dependencies = [
- "cfg-if",
+ "cfg-if 0.1.10",
"libc",
- "winapi 0.3.8",
+ "winapi 0.3.9",
]
[[package]]
@@ -1183,15 +1218,15 @@ dependencies = [
[[package]]
name = "object"
-version = "0.20.0"
+version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ab52be62400ca80aa00285d25253d7f7c437b7375c4de678f5405d3afe82ca5"
+checksum = "37fd5004feb2ce328a52b0b3d01dbf4ffff72583493900ed15f22d4111c51693"
[[package]]
name = "once_cell"
-version = "1.4.0"
+version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
+checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad"
[[package]]
name = "openssl-probe"
@@ -1214,26 +1249,28 @@ dependencies = [
[[package]]
name = "parking_lot"
-version = "0.10.2"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e"
+checksum = "a4893845fa2ca272e647da5d0e46660a314ead9c2fdd9a883aabc32e481a8733"
dependencies = [
+ "instant",
"lock_api",
"parking_lot_core",
]
[[package]]
name = "parking_lot_core"
-version = "0.7.2"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3"
+checksum = "c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b"
dependencies = [
- "cfg-if",
+ "cfg-if 0.1.10",
"cloudabi",
+ "instant",
"libc",
"redox_syscall",
"smallvec",
- "winapi 0.3.8",
+ "winapi 0.3.9",
]
[[package]]
@@ -1244,29 +1281,49 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
[[package]]
name = "pin-project"
-version = "0.4.22"
+version = "0.4.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15"
+dependencies = [
+ "pin-project-internal 0.4.27",
+]
+
+[[package]]
+name = "pin-project"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee41d838744f60d959d7074e3afb6b35c7456d0f61cad38a24e35e6553f73841"
+dependencies = [
+ "pin-project-internal 1.0.1",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "0.4.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12e3a6cdbfe94a5e4572812a0201f8c0ed98c1c452c7b8563ce2276988ef9c17"
+checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895"
dependencies = [
- "pin-project-internal",
+ "proc-macro2 1.0.24",
+ "quote 1.0.7",
+ "syn 1.0.48",
]
[[package]]
name = "pin-project-internal"
-version = "0.4.22"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a0ffd45cf79d88737d7cc85bfd5d2894bee1139b356e616fe85dc389c61aaf7"
+checksum = "81a4ffa594b66bff340084d4081df649a7dc049ac8d7fc458d8e628bfbbb2f86"
dependencies = [
- "proc-macro2 1.0.18",
+ "proc-macro2 1.0.24",
"quote 1.0.7",
- "syn 1.0.32",
+ "syn 1.0.48",
]
[[package]]
name = "pin-project-lite"
-version = "0.1.7"
+version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "282adbf10f2698a7a77f8e983a74b2d18176c19a7fd32a45446139ae7b02b715"
+checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b"
[[package]]
name = "pin-utils"
@@ -1282,21 +1339,21 @@ checksum = "d15b6607fa632996eb8a17c9041cb6071cb75ac057abd45dece578723ea8c7c0"
[[package]]
name = "pkg-config"
-version = "0.3.17"
+version = "0.3.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
+checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
[[package]]
name = "ppv-lite86"
-version = "0.2.8"
+version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
+checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20"
[[package]]
name = "proc-macro-hack"
-version = "0.5.16"
+version = "0.5.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4"
+checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598"
[[package]]
name = "proc-macro-nested"
@@ -1315,11 +1372,11 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.18"
+version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa"
+checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
dependencies = [
- "unicode-xid 0.2.0",
+ "unicode-xid 0.2.1",
]
[[package]]
@@ -1343,7 +1400,7 @@ version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
dependencies = [
- "proc-macro2 1.0.18",
+ "proc-macro2 1.0.24",
]
[[package]]
@@ -1389,15 +1446,15 @@ dependencies = [
[[package]]
name = "redox_syscall"
-version = "0.1.56"
+version = "0.1.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
+checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
[[package]]
name = "regex"
-version = "1.3.9"
+version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
+checksum = "8963b85b8ce3074fecffde43b4b0dded83ce2f367dc8d363afc56679f3ee820b"
dependencies = [
"aho-corasick",
"memchr",
@@ -1407,9 +1464,9 @@ dependencies = [
[[package]]
name = "regex-syntax"
-version = "0.6.18"
+version = "0.6.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
+checksum = "8cab7a364d15cde1e505267766a2d3c4e22a843e1a601f0fa7564c0f82ced11c"
[[package]]
name = "resolv-conf"
@@ -1423,18 +1480,9 @@ dependencies = [
[[package]]
name = "rustc-demangle"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
-
-[[package]]
-name = "rustc_version"
-version = "0.2.3"
+version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-dependencies = [
- "semver",
-]
+checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232"
[[package]]
name = "ryu"
@@ -1443,57 +1491,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
[[package]]
-name = "scoped-tls"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28"
-
-[[package]]
name = "scopeguard"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[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.113"
+version = "1.0.117"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6135c78461981c79497158ef777264c51d9d0f4f3fc3a4d22b915900e42dac6a"
+checksum = "b88fa983de7720629c9387e9f517353ed404164b1e482c970a90c1a4aaf7dc1a"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.113"
+version = "1.0.117"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93c5eaa17d0954cb481cdcfffe9d84fcfa7a1a9f2349271e678677be4c26ae31"
+checksum = "cbd1ae72adb44aab48f325a02444a5fc079349a8d804c1fc922aed3f7454c74e"
dependencies = [
- "proc-macro2 1.0.18",
+ "proc-macro2 1.0.24",
"quote 1.0.7",
- "syn 1.0.32",
+ "syn 1.0.48",
]
[[package]]
name = "serde_json"
-version = "1.0.55"
+version = "1.0.59"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec2c5d7e739bc07a3e73381a39d61fdb5f671c60c1df26a130690665803d8226"
+checksum = "dcac07dbffa1c65e7f816ab9eba78eb142c6d44410f4eeba1e26e4f5dfa56b95"
dependencies = [
"itoa",
"ryu",
@@ -1520,9 +1547,9 @@ checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
[[package]]
name = "signal-hook-registry"
-version = "1.2.0"
+version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41"
+checksum = "a3e12110bc539e657a646068aaf5eb5b63af9d0c1f7b29c97113fad80e15f035"
dependencies = [
"arc-swap",
"libc",
@@ -1536,20 +1563,27 @@ checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
[[package]]
name = "smallvec"
-version = "1.4.0"
+version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4"
+checksum = "fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252"
[[package]]
name = "socket2"
-version = "0.3.12"
+version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
+checksum = "b1fa70dc5c8104ec096f4fe7ede7a221d35ae13dcd19ba1ad9a81d2cab9a1c44"
dependencies = [
- "cfg-if",
+ "cfg-if 0.1.10",
"libc",
"redox_syscall",
- "winapi 0.3.8",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "supergit"
+version = "0.1.0"
+dependencies = [
+ "git2",
]
[[package]]
@@ -1565,13 +1599,13 @@ dependencies = [
[[package]]
name = "syn"
-version = "1.0.32"
+version = "1.0.48"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a994520748611c17d163e81b6c4a4b13d11b7f63884362ab2efac3aa9cf16d00"
+checksum = "cc371affeffc477f42a221a1e4297aedcea33d47d19b61455588bd9d8f6b19ac"
dependencies = [
- "proc-macro2 1.0.18",
+ "proc-macro2 1.0.24",
"quote 1.0.7",
- "unicode-xid 0.2.0",
+ "unicode-xid 0.2.1",
]
[[package]]
@@ -1580,10 +1614,10 @@ version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
dependencies = [
- "proc-macro2 1.0.18",
+ "proc-macro2 1.0.24",
"quote 1.0.7",
- "syn 1.0.32",
- "unicode-xid 0.2.0",
+ "syn 1.0.48",
+ "unicode-xid 0.2.1",
]
[[package]]
@@ -1615,25 +1649,26 @@ dependencies = [
[[package]]
name = "time"
-version = "0.1.43"
+version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
+checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
dependencies = [
"libc",
- "winapi 0.3.8",
+ "wasi 0.10.0+wasi-snapshot-preview1",
+ "winapi 0.3.9",
]
[[package]]
name = "tinyvec"
-version = "0.3.3"
+version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed"
+checksum = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117"
[[package]]
name = "tokio"
-version = "0.2.21"
+version = "0.2.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d099fa27b9702bed751524694adbe393e18b36b204da91eb1cbbbbb4a5ee2d58"
+checksum = "5d34ca54d84bf2b5b4d7d31e901a8464f7b60ac145a284fba25ceb801f2ddccd"
dependencies = [
"bytes",
"futures-core",
@@ -1646,7 +1681,7 @@ dependencies = [
"pin-project-lite",
"signal-hook-registry",
"slab",
- "winapi 0.3.8",
+ "winapi 0.3.9",
]
[[package]]
@@ -1687,6 +1722,37 @@ dependencies = [
]
[[package]]
+name = "tracing"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0987850db3733619253fe60e17cb59b82d37c7e6c0236bb81e4d6b87c879f27"
+dependencies = [
+ "cfg-if 0.1.10",
+ "log",
+ "pin-project-lite",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "tracing-futures"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c"
+dependencies = [
+ "pin-project 0.4.27",
+ "tracing",
+]
+
+[[package]]
name = "trust-dns-proto"
version = "0.18.0-alpha.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1712,7 +1778,7 @@ version = "0.18.0-alpha.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f90b1502b226f8b2514c6d5b37bafa8c200d7ca4102d57dc36ee0f3b7a04a2f"
dependencies = [
- "cfg-if",
+ "cfg-if 0.1.10",
"failure",
"futures",
"ipconfig",
@@ -1766,9 +1832,9 @@ checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
[[package]]
name = "unicode-xid"
-version = "0.2.0"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
+checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
[[package]]
name = "url"
@@ -1797,9 +1863,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2ca2a14bc3fc5b64d188b087a7d3a927df87b152e941ccfbc66672e20c467ae"
dependencies = [
"nom",
- "proc-macro2 1.0.18",
+ "proc-macro2 1.0.24",
"quote 1.0.7",
- "syn 1.0.32",
+ "syn 1.0.48",
]
[[package]]
@@ -1808,7 +1874,7 @@ version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e33e939c0d8cf047514fb6ba7d5aac78bc56677a6938b2ee67000b91f2e97e41"
dependencies = [
- "cfg-if",
+ "cfg-if 0.1.10",
"v_escape",
]
@@ -1837,8 +1903,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
[[package]]
+name = "wasi"
+version = "0.10.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
+
+[[package]]
name = "webgit"
-version = "0.1.0"
+version = "0.2.0"
dependencies = [
"actix-files",
"actix-rt",
@@ -1851,9 +1923,9 @@ dependencies = [
[[package]]
name = "widestring"
-version = "0.4.2"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a763e303c0e0f23b0da40888724762e802a8ffefbc22de4127ef42493c2ea68c"
+checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c"
[[package]]
name = "winapi"
@@ -1863,9 +1935,9 @@ checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
[[package]]
name = "winapi"
-version = "0.3.8"
+version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
@@ -1889,7 +1961,7 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
dependencies = [
- "winapi 0.3.8",
+ "winapi 0.3.9",
]
[[package]]
@@ -1904,7 +1976,7 @@ version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9"
dependencies = [
- "winapi 0.3.8",
+ "winapi 0.3.9",
]
[[package]]
diff --git a/Cargo.toml b/Cargo.toml
index 93d8eb5..afc01fd 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,8 +1,8 @@
[package]
name = "webgit"
description = "A lightweight web frontend for git repositories"
-version = "0.1.0"
-authors = ["Katharina Fey <kookie@spacekookie.de>"]
+version = "0.2.0"
+authors = ["Kaiden Fey <kookie@spacekookie.de>"]
edition = "2018"
[dependencies]
@@ -19,4 +19,10 @@ askama = "0.8"
[features]
default = ["markdown-readme"]
-markdown-readme = ["markdown"] \ No newline at end of file
+markdown-readme = ["markdown"]
+
+[workspace]
+members = [
+ ".",
+ "supergit",
+] \ No newline at end of file
diff --git a/fake-readme.md b/fake-readme.md
index c5ab6cf..4f5eda8 100644
--- a/fake-readme.md
+++ b/fake-readme.md
@@ -1,3 +1,5 @@
+# This is a heading y'all
+
**Welcome to my personal code and project monorepo archive!**
It contains most projects I work on in my own time, including the
diff --git a/src/main.rs b/src/main.rs
index 92e1bc7..8ed6445 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,4 +1,4 @@
-mod git;
+//mod git;
mod pages;
mod repo;
mod templ_data;
@@ -19,12 +19,8 @@ async fn main() -> io::Result<()> {
HttpServer::new(move || {
App::new()
.service(fs::Files::new("/static", root.join("static")))
- // This is a bit of a hack so that people don't get the
- // 404 on the root page. Especially as long as octopus
- // doesn't have the account overview yet!
- .service(web::resource("/").route(web::get().to(pages::index)))
- .service(web::resource("/{repo}").route(web::get().to(pages::repo::about)))
- .service(web::resource("/{repo}/details").route(web::get().to(pages::repo::details)))
+ .service(web::resource("/").route(web::get().to(pages::overview)))
+ .service(web::resource("/tree").route(web::get().to(pages::files)))
.default_service(web::resource("").route(web::get().to(pages::p404)))
})
.bind("127.0.0.1:8080")?
diff --git a/src/pages/files.rs b/src/pages/files.rs
new file mode 100644
index 0000000..73a86a4
--- /dev/null
+++ b/src/pages/files.rs
@@ -0,0 +1,20 @@
+//! The main file browser
+
+use crate::templ_data::{files::Files, BaseData};
+use actix_web::{web, HttpRequest, HttpResponse, Result};
+use askama::Template;
+
+pub async fn render(req: HttpRequest) -> Result<HttpResponse> {
+ let files = Files {
+ base: BaseData {
+ sitename: "dev.spacekookie.de".into(),
+ ..BaseData::default()
+ },
+ readme: None,
+ path: "".into(),
+ }
+ .render()
+ .unwrap();
+
+ Ok(HttpResponse::Ok().content_type("text/html").body(files))
+}
diff --git a/src/pages/mod.rs b/src/pages/mod.rs
index 5689af7..2f1ed57 100644
--- a/src/pages/mod.rs
+++ b/src/pages/mod.rs
@@ -3,39 +3,13 @@
//! A page is defined by it's template type as well as it's route,
//! which is exported from the module and then called by the router
-pub mod repo;
+// pub mod repo;
+
+mod overview;
+pub use overview::render as overview;
mod p404;
pub use p404::render as p404;
-use actix_web::{web, HttpRequest, HttpResponse, Result};
-use askama::Template;
-
-pub(crate) struct BaseData {
- sitename: String,
- has_wiki: bool,
-}
-
-#[derive(Template)]
-#[template(path = "index.html", escape = "none")]
-pub(crate) struct Index {
- base: BaseData,
- readme: String,
-}
-
-pub async fn index(req: HttpRequest) -> Result<HttpResponse> {
-
- let readme: String = markdown::to_html(include_str!("../../fake-readme.md").into());
-
- let index = Index {
- base: BaseData {
- sitename: "dev.spacekookie.de".into(),
- has_wiki: true,
- },
- readme
-
- }
- .render()
- .unwrap();
- Ok(HttpResponse::Ok().content_type("text/html").body(index))
-}
+mod files;
+pub use files::render as files;
diff --git a/src/pages/overview.rs b/src/pages/overview.rs
new file mode 100644
index 0000000..ca8c9b3
--- /dev/null
+++ b/src/pages/overview.rs
@@ -0,0 +1,24 @@
+//! Overview page
+//!
+//! This is the first page a user sees when they just go to the site
+//! root. It renders the `README`, or `README.md` file from the modo
+//! repo root, to provide users with a starting point.
+
+use crate::templ_data::{overview::Index, BaseData};
+use actix_web::{web, HttpRequest, HttpResponse, Result};
+use askama::Template;
+
+pub async fn render(req: HttpRequest) -> Result<HttpResponse> {
+ let readme: String = markdown::to_html(include_str!("../../fake-readme.md").into());
+
+ let index = Index {
+ base: BaseData {
+ sitename: "dev.spacekookie.de".into(),
+ ..BaseData::default()
+ },
+ readme,
+ }
+ .render()
+ .unwrap();
+ Ok(HttpResponse::Ok().content_type("text/html").body(index))
+}
diff --git a/src/templ_data/files.rs b/src/templ_data/files.rs
new file mode 100644
index 0000000..27a5bde
--- /dev/null
+++ b/src/templ_data/files.rs
@@ -0,0 +1,13 @@
+//! File browser template data
+
+use super::BaseData;
+use askama::Template;
+
+// This struct needs escapng=none to render README files it encounters along the way
+#[derive(Template)]
+#[template(path = "files.html", escape = "none")]
+pub(crate) struct Files {
+ pub base: BaseData,
+ pub path: String,
+ pub readme: Option<String>,
+}
diff --git a/src/templ_data/mod.rs b/src/templ_data/mod.rs
index 6c93266..7645e95 100644
--- a/src/templ_data/mod.rs
+++ b/src/templ_data/mod.rs
@@ -10,21 +10,29 @@
//! `page` module, which then uses the appropriate template structures
//! defined here.
-pub(crate) mod repo;
+pub(crate) mod overview;
+pub(crate) mod files;
+
+use std::env;
/// A basic application wide template structure
pub(crate) struct BaseData {
pub version: String,
pub source: String,
- pub url: String,
+ pub siteurl: String,
+ pub sitename: String,
+ pub has_wiki: bool,
}
impl Default for BaseData {
fn default() -> Self {
Self {
- version: "0.2.0".into(),
- source: "".into(),
- url: "http://localhost:8080".into(),
+ version: env!("CARGO_PKG_VERSION").into(),
+ source: env::var("_OCTOPUS_SOURCE")
+ .unwrap_or("https://dev.spacekookie.de/web/octopus".to_string()),
+ siteurl: env::var("_OCTOPUS_SITE_URL").unwrap_or("localhost:8080".to_string()),
+ sitename: env::var("_OCTOPUS_SITE_NAME").unwrap_or("test-octopus".to_string()),
+ has_wiki: true,
}
}
}
diff --git a/src/templ_data/overview.rs b/src/templ_data/overview.rs
new file mode 100644
index 0000000..693db0a
--- /dev/null
+++ b/src/templ_data/overview.rs
@@ -0,0 +1,11 @@
+//! Template data for the main overview
+
+use super::BaseData;
+use askama::Template;
+
+#[derive(Template)]
+#[template(path = "index.html", escape = "none")]
+pub(crate) struct Index {
+ pub base: BaseData,
+ pub readme: String,
+}
diff --git a/static/main.css b/static/main.css
index 4fd246d..f16cd22 100644
--- a/static/main.css
+++ b/static/main.css
@@ -50,14 +50,32 @@ header a:hover {
display: flex;
flex-direction: column;
align-items: center;
+ text-align: left;
}
.content {
font-weight: 300;
- max-width: 700px;
+ width: 700px;
}
.content h1 {
font-weight: 300;
}
+.footer {
+ padding-top: 10rem;
+}
+
+/*************************************************************************/
+
+.explorer {
+ display: grid;
+ margin: 2em -5
+ border: black 0.5px dashed;
+}
+
+.expl-header {
+ font-size: 1.25em;
+ background: #EFEFEF;
+ padding: 0.5em;
+}
diff --git a/supergit/Cargo.toml b/supergit/Cargo.toml
new file mode 100644
index 0000000..7fdb253
--- /dev/null
+++ b/supergit/Cargo.toml
@@ -0,0 +1,9 @@
+[package]
+name = "supergit"
+description = "A strongly typed, read-only representation of a git repository"
+version = "0.1.0"
+authors = ["Mx Kookie <kookie@spacekookie.de>"]
+edition = "2018"
+
+[dependencies]
+git2 = "0.11" \ No newline at end of file
diff --git a/supergit/src/branch.rs b/supergit/src/branch.rs
new file mode 100644
index 0000000..81abbff
--- /dev/null
+++ b/supergit/src/branch.rs
@@ -0,0 +1,22 @@
+use crate::{Commit, CommitId};
+
+/// Abstraction for a branch history slice
+pub struct Branch {
+ name: String,
+ head: CommitId,
+ history: Vec<BranchCommit>,
+}
+
+/// A commit represented as a relationship to a branch
+///
+/// Most commits will be simple, meaning they are in sequence on the
+/// branch. Two types of merge commits exist: normal, and octopus.
+/// All branches leading into this branch are a reverse tree
+pub enum BranchCommit {
+ /// A single commit
+ Commit(Commit),
+ /// A merge commit from one other branch
+ Merge(Branch),
+ /// An octopus merge with multiple branches
+ Octopus(Vec<Branch>),
+}
diff --git a/supergit/src/commit.rs b/supergit/src/commit.rs
new file mode 100644
index 0000000..46a6ab4
--- /dev/null
+++ b/supergit/src/commit.rs
@@ -0,0 +1,11 @@
+pub type CommitId = usize;
+
+/// Represent a commit on a repository
+///
+/// This abstraction only contains metadata required to fetch the full
+/// commit from disk, if it is queried. Any operation on this type
+/// will block to first load
+pub struct Commit {
+ pub id: CommitId,
+ hash: String,
+}
diff --git a/supergit/src/files.rs b/supergit/src/files.rs
new file mode 100644
index 0000000..681b887
--- /dev/null
+++ b/supergit/src/files.rs
@@ -0,0 +1,7 @@
+
+pub type FileId = usize;
+
+/// A file to have ever existed in a git repo
+pub struct File {
+ id: FileId,
+}
diff --git a/supergit/src/lib.rs b/supergit/src/lib.rs
new file mode 100644
index 0000000..3e02d30
--- /dev/null
+++ b/supergit/src/lib.rs
@@ -0,0 +1,39 @@
+//! Strongly typed git repository explorer library
+//!
+
+mod branch;
+pub use branch::{Branch, BranchCommit};
+
+mod commit;
+pub use commit::{CommitId, Commit};
+
+pub(crate) mod raw;
+
+use std::sync::atomic::{AtomicUsize, Ordering};
+
+/// Represents a git repository with lazy data loading
+pub struct Repository {}
+
+impl Repository {
+ pub fn open(path: &std::path::Path) -> Self {
+ todo!()
+ }
+
+ /// Sync the repository with the backing git files
+ ///
+ /// This function can be invoked manually, but should be invoked
+ /// basically every time your program expects changes to have
+ /// happened. Polling this function is not recommended.
+ pub fn sync(&self) {
+
+ }
+}
+
+/////////// IDs are created from the same pool to save on code size ////////////
+
+const ID_CTR: AtomicUsize = AtomicUsize::new(0);
+
+/// Get monotonically increasing IDs for objects
+pub(crate) fn id() -> usize {
+ ID_CTR.fetch_add(1, Ordering::Relaxed)
+}
diff --git a/supergit/src/raw/mod.rs b/supergit/src/raw/mod.rs
new file mode 100644
index 0000000..b2f67a4
--- /dev/null
+++ b/supergit/src/raw/mod.rs
@@ -0,0 +1,39 @@
+//! Raw representation wrappers for libgit2
+
+use git2::{self, Repository};
+
+pub(crate) type RawResult<T> = Result<T, RawError>;
+
+/// An error abstraction for raw git operations
+#[derive(Debug)]
+pub(crate) enum RawError {
+ AllBad,
+}
+
+impl From<git2::Error> for RawError {
+ fn from(_: git2::Error) -> Self {
+ Self::AllBad
+ }
+}
+
+/// Wrap a libgit2 repository to provide an API fascade
+pub(crate) struct RawRepository {
+ inner: Repository,
+}
+
+impl RawRepository {
+ pub(crate) fn open(path: &str) -> RawResult<Self> {
+ Ok(Self {
+ inner: Repository::open(path)?,
+ })
+ }
+
+ /// Sync the backing storage with the backing git repo
+ ///
+ /// This function can be invoked manually, but should be invoked
+ /// basically every time your program expects changes to have
+ /// happened. Polling this function is not recommended.
+ pub(crate) fn update(&self) -> RawResult<()> {
+ Ok(())
+ }
+}
diff --git a/templates/core.html b/templates/core.html
index aaa95ce..4112cc6 100644
--- a/templates/core.html
+++ b/templates/core.html
@@ -4,17 +4,37 @@
<meta charset="utf-8" />
<link href="/static/main.css" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1">
+ <meta http-equiv="Cache-control" content="no-cache">
{% block title %}{% endblock %}
</head>
<body>
- <div class="container">
- {% block content %}{% endblock %}
+
+ <header>
+ <div class="nav">
+ <img src="/static/octopus.png" />
+ <h1>{{ base.sitename }}</h1>
+ </div>
+ <div class="nav">
+ <a href="{{ base.siteurl }}/">Overview</a>
+ <a href="{{ base.siteurl }}/tree">File Browser</a>
+ <a href="{{ base.siteurl }}/wiki">Wiki</a>
+ </div>
+ </header>
+ {# Limits the width #}
+ <div class="wrap">
+ <div class="content">
+ {% block content %}{% endblock %}
+ </div>
+
+ <div class="footer">
<pre>
Generated by <strong>octopus {{ base.version }}</strong>
In compliance with the <a href="https://en.wikipedia.org/wiki/Affero_General_Public_License">AGPL</a> you can find the sources for this software <strong><a href="{{ base.source }}">here</a></strong>!
</pre>
- <div>
+ </div>
+
+ </div>
</body>
</html>
diff --git a/templates/files.html b/templates/files.html
new file mode 100644
index 0000000..02b0201
--- /dev/null
+++ b/templates/files.html
@@ -0,0 +1,17 @@
+{% extends "core.html" %}
+
+{% block content %}
+
+<h1>File Tree</h1>
+
+<p>Following is a copy of the file tree. You can clone any sub-directry that is marked as a "project".</p>
+
+<div class="explorer">
+
+ {# header section #}
+ <div class="expl-header">
+ <span><strong>Mx Kookie</strong> <a href="">Just fucking around with stuff</a></span>
+ </div>
+</div>
+
+{% endblock %}
diff --git a/templates/index.html b/templates/index.html
index ca7d1b1..fd23cc2 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -1,29 +1,7 @@
-<html>
- <head>
- <title>octopus | index</title>
- <link href="/static/main.css" rel="stylesheet">
- </head>
- <body>
- <div class="wrapper">
- <header>
- <div class="nav">
- <img src="/static/octopus.png" />
- <h1>{{ base.sitename }}</h1>
- </div>
- <div class="nav">
- <a href="">Overview</a>
- <a href="">File Browser</a>
- <a href="">Wiki</a>
- </div>
- </header>
+{% extends "core.html" %}
- <div class="wrap">
- <div class="content">
- {{ readme }}
- </div>
- </div>
-
-
- </div>
- </body>
-</html>
+{% block content %}
+
+{{ readme }}
+
+{% endblock %}