mirror of
https://github.com/deps-rs/deps.rs.git
synced 2024-11-25 11:36:30 +00:00
vendor badge crate with changes
This commit is contained in:
parent
b952ccea13
commit
1c4f933887
9 changed files with 295 additions and 26 deletions
47
Cargo.lock
generated
47
Cargo.lock
generated
|
@ -29,10 +29,10 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "badge"
|
name = "badge"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rusttype 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"base64 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"rusttype 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -270,11 +270,6 @@ name = "linked-hash-map"
|
||||||
version = "0.4.2"
|
version = "0.4.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "linked-hash-map"
|
|
||||||
version = "0.5.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "literalext"
|
name = "literalext"
|
||||||
version = "0.1.1"
|
version = "0.1.1"
|
||||||
|
@ -466,6 +461,15 @@ dependencies = [
|
||||||
"vcpkg 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"vcpkg 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ordered-float"
|
||||||
|
version = "0.5.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"unreachable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ordermap"
|
name = "ordermap"
|
||||||
version = "0.4.0"
|
version = "0.4.0"
|
||||||
|
@ -551,11 +555,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rusttype"
|
name = "rusttype"
|
||||||
version = "0.2.3"
|
version = "0.4.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ordered-float 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"stb_truetype 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"stb_truetype 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -670,8 +674,7 @@ dependencies = [
|
||||||
name = "shiny-robots"
|
name = "shiny-robots"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"badge 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"badge 0.2.0",
|
||||||
"base64 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
||||||
"failure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"failure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"futures 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
"futures 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"hyper 0.11.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
"hyper 0.11.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -866,6 +869,14 @@ name = "unicode-xid"
|
||||||
version = "0.0.4"
|
version = "0.0.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unreachable"
|
||||||
|
version = "0.1.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "vcpkg"
|
name = "vcpkg"
|
||||||
version = "0.2.2"
|
version = "0.2.2"
|
||||||
|
@ -876,6 +887,11 @@ name = "version_check"
|
||||||
version = "0.1.3"
|
version = "0.1.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "void"
|
||||||
|
version = "1.0.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "winapi"
|
name = "winapi"
|
||||||
version = "0.2.8"
|
version = "0.2.8"
|
||||||
|
@ -918,7 +934,6 @@ dependencies = [
|
||||||
"checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef"
|
"checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef"
|
||||||
"checksum backtrace 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ebbbf59b1c43eefa8c3ede390fcc36820b4999f7914104015be25025e0d62af2"
|
"checksum backtrace 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ebbbf59b1c43eefa8c3ede390fcc36820b4999f7914104015be25025e0d62af2"
|
||||||
"checksum backtrace-sys 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "44585761d6161b0f57afc49482ab6bd067e4edef48c12a152c237eb0203f7661"
|
"checksum backtrace-sys 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "44585761d6161b0f57afc49482ab6bd067e4edef48c12a152c237eb0203f7661"
|
||||||
"checksum badge 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "252a8110fb51d7dbb24b35e3832ea6634c27867c34c68f166962555e4aa4c10f"
|
|
||||||
"checksum base64 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "229d032f1a99302697f10b27167ae6d03d49d032e6a8e2550e8d3fc13356d2b4"
|
"checksum base64 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "229d032f1a99302697f10b27167ae6d03d49d032e6a8e2550e8d3fc13356d2b4"
|
||||||
"checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5"
|
"checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5"
|
||||||
"checksum bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b3c30d3802dfb7281680d6285f2ccdaa8c2d8fee41f93805dba5c4cf50dc23cf"
|
"checksum bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b3c30d3802dfb7281680d6285f2ccdaa8c2d8fee41f93805dba5c4cf50dc23cf"
|
||||||
|
@ -951,7 +966,6 @@ dependencies = [
|
||||||
"checksum lazycell 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a6f08839bc70ef4a3fe1d566d5350f519c5912ea86be0df1740a7d247c7fc0ef"
|
"checksum lazycell 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a6f08839bc70ef4a3fe1d566d5350f519c5912ea86be0df1740a7d247c7fc0ef"
|
||||||
"checksum libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)" = "1e5d97d6708edaa407429faa671b942dc0f2727222fb6b6539bf1db936e4b121"
|
"checksum libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)" = "1e5d97d6708edaa407429faa671b942dc0f2727222fb6b6539bf1db936e4b121"
|
||||||
"checksum linked-hash-map 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7860ec297f7008ff7a1e3382d7f7e1dcd69efc94751a2284bafc3d013c2aa939"
|
"checksum linked-hash-map 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7860ec297f7008ff7a1e3382d7f7e1dcd69efc94751a2284bafc3d013c2aa939"
|
||||||
"checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e"
|
|
||||||
"checksum literalext 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2f42dd699527975a1e0d722e0707998671188a0125f2051d2d192fc201184a81"
|
"checksum literalext 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2f42dd699527975a1e0d722e0707998671188a0125f2051d2d192fc201184a81"
|
||||||
"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
|
"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
|
||||||
"checksum log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "89f010e843f2b1a31dbd316b3b8d443758bc634bed37aabade59c686d644e0a2"
|
"checksum log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "89f010e843f2b1a31dbd316b3b8d443758bc634bed37aabade59c686d644e0a2"
|
||||||
|
@ -973,6 +987,7 @@ dependencies = [
|
||||||
"checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30"
|
"checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30"
|
||||||
"checksum openssl 0.9.24 (registry+https://github.com/rust-lang/crates.io-index)" = "a3605c298474a3aa69de92d21139fb5e2a81688d308262359d85cdd0d12a7985"
|
"checksum openssl 0.9.24 (registry+https://github.com/rust-lang/crates.io-index)" = "a3605c298474a3aa69de92d21139fb5e2a81688d308262359d85cdd0d12a7985"
|
||||||
"checksum openssl-sys 0.9.25 (registry+https://github.com/rust-lang/crates.io-index)" = "93b3cbfaccf11969aea8c2041bfafc43c81666c1ce673476e19395c92cc77bf4"
|
"checksum openssl-sys 0.9.25 (registry+https://github.com/rust-lang/crates.io-index)" = "93b3cbfaccf11969aea8c2041bfafc43c81666c1ce673476e19395c92cc77bf4"
|
||||||
|
"checksum ordered-float 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "58d25b6c0e47b20d05226d288ff434940296e7e2f8b877975da32f862152241f"
|
||||||
"checksum ordermap 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "88fc9d511a8e8d3adc7ba9f4b8f9683a2eface9c14b652ad77f975c4f95c787b"
|
"checksum ordermap 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "88fc9d511a8e8d3adc7ba9f4b8f9683a2eface9c14b652ad77f975c4f95c787b"
|
||||||
"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
|
"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
|
||||||
"checksum pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edba903"
|
"checksum pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edba903"
|
||||||
|
@ -985,7 +1000,7 @@ dependencies = [
|
||||||
"checksum remove_dir_all 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b5d2f806b0fcdabd98acd380dc8daef485e22bcb7cddc811d1337967f2528cf5"
|
"checksum remove_dir_all 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b5d2f806b0fcdabd98acd380dc8daef485e22bcb7cddc811d1337967f2528cf5"
|
||||||
"checksum route-recognizer 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3255338088df8146ba63d60a9b8e3556f1146ce2973bc05a75181a42ce2256"
|
"checksum route-recognizer 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3255338088df8146ba63d60a9b8e3556f1146ce2973bc05a75181a42ce2256"
|
||||||
"checksum rustc-demangle 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "aee45432acc62f7b9a108cc054142dac51f979e69e71ddce7d6fc7adf29e817e"
|
"checksum rustc-demangle 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "aee45432acc62f7b9a108cc054142dac51f979e69e71ddce7d6fc7adf29e817e"
|
||||||
"checksum rusttype 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "30047cc747a78ae042bf2cd65c79f83c3485d90107535b532d6e8f60e2c89cb1"
|
"checksum rusttype 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2b948303d19988f60ed3e49551f4fedf28c86a2025842a07c6c1d8aa985b8557"
|
||||||
"checksum safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e27a8b19b835f7aea908818e871f5cc3a5a186550c30773be987e155e8163d8f"
|
"checksum safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e27a8b19b835f7aea908818e871f5cc3a5a186550c30773be987e155e8163d8f"
|
||||||
"checksum sass-rs 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90f8cf6e645aa843ffffcbdc1e8752b1f221dfa314c81895aeb229a77aea7e05"
|
"checksum sass-rs 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90f8cf6e645aa843ffffcbdc1e8752b1f221dfa314c81895aeb229a77aea7e05"
|
||||||
"checksum sass-sys 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8bc8cb11c6906ced0e62751f93fa1f30216612a182d4e9a7d8ace302834b1742"
|
"checksum sass-sys 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8bc8cb11c6906ced0e62751f93fa1f30216612a182d4e9a7d8ace302834b1742"
|
||||||
|
@ -1019,8 +1034,10 @@ dependencies = [
|
||||||
"checksum toml 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a7540f4ffc193e0d3c94121edb19b055670d369f77d5804db11ae053a45b6e7e"
|
"checksum toml 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a7540f4ffc193e0d3c94121edb19b055670d369f77d5804db11ae053a45b6e7e"
|
||||||
"checksum unicase 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "284b6d3db520d67fbe88fd778c21510d1b0ba4a551e5d0fbb023d33405f6de8a"
|
"checksum unicase 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "284b6d3db520d67fbe88fd778c21510d1b0ba4a551e5d0fbb023d33405f6de8a"
|
||||||
"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
|
"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
|
||||||
|
"checksum unreachable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1f2ae5ddb18e1c92664717616dd9549dde73f539f01bd7b77c2edb2446bdff91"
|
||||||
"checksum vcpkg 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9e0a7d8bed3178a8fb112199d466eeca9ed09a14ba8ad67718179b4fd5487d0b"
|
"checksum vcpkg 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9e0a7d8bed3178a8fb112199d466eeca9ed09a14ba8ad67718179b4fd5487d0b"
|
||||||
"checksum version_check 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6b772017e347561807c1aa192438c5fd74242a670a6cffacc40f2defd1dc069d"
|
"checksum version_check 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6b772017e347561807c1aa192438c5fd74242a670a6cffacc40f2defd1dc069d"
|
||||||
|
"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
|
||||||
"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
|
"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
|
||||||
"checksum winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "04e3bd221fcbe8a271359c04f21a76db7d0c6028862d1bb5512d85e1e2eb5bb3"
|
"checksum winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "04e3bd221fcbe8a271359c04f21a76db7d0c6028862d1bb5512d85e1e2eb5bb3"
|
||||||
"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
|
"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
|
||||||
|
|
|
@ -4,8 +4,6 @@ version = "0.1.0"
|
||||||
authors = ["Sam Rijs <srijs@airpost.net>"]
|
authors = ["Sam Rijs <srijs@airpost.net>"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
badge = "0.1.0"
|
|
||||||
base64 = "0.9.0"
|
|
||||||
failure = "0.1.1"
|
failure = "0.1.1"
|
||||||
futures = "0.1.18"
|
futures = "0.1.18"
|
||||||
hyper = "0.11.15"
|
hyper = "0.11.15"
|
||||||
|
@ -26,5 +24,9 @@ tokio-core = "0.1.12"
|
||||||
tokio-service = "0.1.0"
|
tokio-service = "0.1.0"
|
||||||
toml = "0.4.5"
|
toml = "0.4.5"
|
||||||
|
|
||||||
|
[dependencies.badge]
|
||||||
|
version = "0.2.0"
|
||||||
|
path = "libs/badge"
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
sass-rs = "0.2.1"
|
sass-rs = "0.2.1"
|
||||||
|
|
15
libs/badge/Cargo.toml
Normal file
15
libs/badge/Cargo.toml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
[package]
|
||||||
|
name = "badge"
|
||||||
|
version = "0.2.0"
|
||||||
|
description = "Simple badge generator"
|
||||||
|
authors = ["Onur Aslan <onur@onur.im>"]
|
||||||
|
license-file = "LICENSE"
|
||||||
|
repository = "https://github.com/onur/docs.rs"
|
||||||
|
documentation = "https://docs.rs/badge"
|
||||||
|
|
||||||
|
[lib]
|
||||||
|
path = "badge.rs"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
base64 = "0.9.0"
|
||||||
|
rusttype = "0.4.0"
|
BIN
libs/badge/DejaVuSans.ttf
Normal file
BIN
libs/badge/DejaVuSans.ttf
Normal file
Binary file not shown.
70
libs/badge/LICENSE
Normal file
70
libs/badge/LICENSE
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
Upstream-Name: badge
|
||||||
|
Source: https://github.com/onur/docs.rs
|
||||||
|
|
||||||
|
Files: *
|
||||||
|
Copyright: Copyright (c) 2016 Onur Aslan <onur@onur.im>
|
||||||
|
License: Expat
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
.
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
.
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
Files: DejaVuSans.ttf
|
||||||
|
Copyright: Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved.
|
||||||
|
Bitstream Vera is a trademark of Bitstream, Inc.
|
||||||
|
DejaVu changes are in public domain.
|
||||||
|
License: bitstream-vera
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of the fonts accompanying this license ("Fonts") and associated
|
||||||
|
documentation files (the "Font Software"), to reproduce and distribute the
|
||||||
|
Font Software, including without limitation the rights to use, copy, merge,
|
||||||
|
publish, distribute, and/or sell copies of the Font Software, and to permit
|
||||||
|
persons to whom the Font Software is furnished to do so, subject to the
|
||||||
|
following conditions:
|
||||||
|
.
|
||||||
|
The above copyright and trademark notices and this permission notice shall
|
||||||
|
be included in all copies of one or more of the Font Software typefaces.
|
||||||
|
.
|
||||||
|
The Font Software may be modified, altered, or added to, and in particular
|
||||||
|
the designs of glyphs or characters in the Fonts may be modified and
|
||||||
|
additional glyphs or characters may be added to the Fonts, only if the fonts
|
||||||
|
are renamed to names not containing either the words "Bitstream" or the word
|
||||||
|
"Vera".
|
||||||
|
.
|
||||||
|
This License becomes null and void to the extent applicable to Fonts or Font
|
||||||
|
Software that has been modified and is distributed under the "Bitstream
|
||||||
|
Vera" names.
|
||||||
|
.
|
||||||
|
The Font Software may be sold as part of a larger software package but no
|
||||||
|
copy of one or more of the Font Software typefaces may be sold by itself.
|
||||||
|
.
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
|
||||||
|
TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
|
||||||
|
FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING
|
||||||
|
ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
|
||||||
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||||
|
THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
|
||||||
|
FONT SOFTWARE.
|
||||||
|
.
|
||||||
|
Except as contained in this notice, the names of Gnome, the Gnome
|
||||||
|
Foundation, and Bitstream Inc., shall not be used in advertising or
|
||||||
|
otherwise to promote the sale, use or other dealings in this Font Software
|
||||||
|
without prior written authorization from the Gnome Foundation or Bitstream
|
||||||
|
Inc., respectively. For further information, contact: fonts at gnome dot
|
||||||
|
org.
|
170
libs/badge/badge.rs
Normal file
170
libs/badge/badge.rs
Normal file
|
@ -0,0 +1,170 @@
|
||||||
|
//! Simple badge generator
|
||||||
|
|
||||||
|
extern crate base64;
|
||||||
|
extern crate rusttype;
|
||||||
|
|
||||||
|
|
||||||
|
use base64::display::Base64Display;
|
||||||
|
use rusttype::{Font, FontCollection, Scale, point, Point, PositionedGlyph};
|
||||||
|
|
||||||
|
|
||||||
|
const FONT_DATA: &'static [u8] = include_bytes!(concat!(env!("CARGO_MANIFEST_DIR"),
|
||||||
|
"/DejaVuSans.ttf"));
|
||||||
|
const FONT_SIZE: f32 = 11.;
|
||||||
|
|
||||||
|
|
||||||
|
pub struct BadgeOptions {
|
||||||
|
/// Subject will be displayed on the left side of badge
|
||||||
|
pub subject: String,
|
||||||
|
/// Status will be displayed on the right side of badge
|
||||||
|
pub status: String,
|
||||||
|
/// HTML color of badge
|
||||||
|
pub color: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
impl Default for BadgeOptions {
|
||||||
|
fn default() -> BadgeOptions {
|
||||||
|
BadgeOptions {
|
||||||
|
subject: "build".to_owned(),
|
||||||
|
status: "passing".to_owned(),
|
||||||
|
color: "#4c1".to_owned(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
pub struct Badge {
|
||||||
|
options: BadgeOptions,
|
||||||
|
font: Font<'static>,
|
||||||
|
scale: Scale,
|
||||||
|
offset: Point<f32>,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
impl Badge {
|
||||||
|
pub fn new(options: BadgeOptions) -> Result<Badge, String> {
|
||||||
|
let collection = FontCollection::from_bytes(FONT_DATA);
|
||||||
|
// this should never fail in practice
|
||||||
|
let font = try!(collection.into_font().ok_or("Failed to load font data".to_owned()));
|
||||||
|
let scale = Scale {
|
||||||
|
x: FONT_SIZE,
|
||||||
|
y: FONT_SIZE,
|
||||||
|
};
|
||||||
|
let v_metrics = font.v_metrics(scale);
|
||||||
|
let offset = point(0.0, v_metrics.ascent);
|
||||||
|
Ok(Badge {
|
||||||
|
options: options,
|
||||||
|
font: font,
|
||||||
|
scale: scale,
|
||||||
|
offset: offset,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
pub fn to_svg_data_uri(&self) -> String {
|
||||||
|
format!("data:image/svg+xml;base64,{}",
|
||||||
|
Base64Display::standard(self.to_svg().as_bytes()))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
pub fn to_svg(&self) -> String {
|
||||||
|
let left_width = self.calculate_width(&self.options.subject) + 6;
|
||||||
|
let right_width = self.calculate_width(&self.options.status) + 6;
|
||||||
|
|
||||||
|
let svg = format!(r###"<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="{}" height="20">
|
||||||
|
<linearGradient id="smooth" x2="0" y2="100%">
|
||||||
|
<stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
|
||||||
|
<stop offset="1" stop-opacity=".1"/>
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
<mask id="round">
|
||||||
|
<rect width="{}" height="20" rx="3" fill="#fff"/>
|
||||||
|
</mask>
|
||||||
|
|
||||||
|
<g mask="url(#round)">
|
||||||
|
<rect width="{}" height="20" fill="#555"/>
|
||||||
|
<rect x="{}" width="{}" height="20" fill="{}"/>
|
||||||
|
<rect width="{}" height="20" fill="url(#smooth)"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||||
|
<text x="{}" y="15" fill="#010101" fill-opacity=".3">{}</text>
|
||||||
|
<text x="{}" y="14">{}</text>
|
||||||
|
<text x="{}" y="15" fill="#010101" fill-opacity=".3">{}</text>
|
||||||
|
<text x="{}" y="14">{}</text>
|
||||||
|
</g>
|
||||||
|
</svg>"###,
|
||||||
|
left_width + right_width,
|
||||||
|
left_width + right_width,
|
||||||
|
left_width,
|
||||||
|
left_width,
|
||||||
|
right_width,
|
||||||
|
self.options.color,
|
||||||
|
left_width + right_width,
|
||||||
|
(left_width) / 2,
|
||||||
|
self.options.subject,
|
||||||
|
(left_width) / 2,
|
||||||
|
self.options.subject,
|
||||||
|
left_width + (right_width / 2),
|
||||||
|
self.options.status,
|
||||||
|
left_width + (right_width / 2),
|
||||||
|
self.options.status);
|
||||||
|
|
||||||
|
svg
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fn calculate_width(&self, text: &str) -> u32 {
|
||||||
|
let glyphs: Vec<PositionedGlyph> =
|
||||||
|
self.font.layout(text, self.scale, self.offset).collect();
|
||||||
|
let width = glyphs.iter()
|
||||||
|
.rev()
|
||||||
|
.filter_map(|g| {
|
||||||
|
g.pixel_bounding_box()
|
||||||
|
.map(|b| b.min.x as f32 + g.unpositioned().h_metrics().advance_width)
|
||||||
|
})
|
||||||
|
.next()
|
||||||
|
.unwrap_or(0.0);
|
||||||
|
(width + ((text.len() as f32 - 1f32) * 1.5)).ceil() as u32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
fn options() -> BadgeOptions {
|
||||||
|
BadgeOptions::default()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_new() {
|
||||||
|
assert!(Badge::new(options()).is_ok());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_calculate_width() {
|
||||||
|
let badge = Badge::new(options()).unwrap();
|
||||||
|
assert_eq!(badge.calculate_width("build"), 31);
|
||||||
|
assert_eq!(badge.calculate_width("passing"), 48);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
#[ignore]
|
||||||
|
fn test_to_svg() {
|
||||||
|
use std::fs::File;
|
||||||
|
use std::io::Write;
|
||||||
|
let mut file = File::create("test.svg").unwrap();
|
||||||
|
let options = BadgeOptions {
|
||||||
|
subject: "build".to_owned(),
|
||||||
|
status: "passing".to_owned(),
|
||||||
|
..BadgeOptions::default()
|
||||||
|
};
|
||||||
|
let badge = Badge::new(options).unwrap();
|
||||||
|
file.write_all(badge.to_svg().as_bytes()).unwrap();
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,7 +4,6 @@
|
||||||
#![feature(proc_macro)]
|
#![feature(proc_macro)]
|
||||||
|
|
||||||
extern crate badge;
|
extern crate badge;
|
||||||
extern crate base64;
|
|
||||||
#[macro_use] extern crate failure;
|
#[macro_use] extern crate failure;
|
||||||
#[macro_use] extern crate futures;
|
#[macro_use] extern crate futures;
|
||||||
extern crate hyper;
|
extern crate hyper;
|
||||||
|
|
|
@ -4,7 +4,7 @@ use hyper::header::ContentType;
|
||||||
|
|
||||||
use ::engine::AnalyzeDependenciesOutcome;
|
use ::engine::AnalyzeDependenciesOutcome;
|
||||||
|
|
||||||
pub fn svg(analysis_outcome: Option<&AnalyzeDependenciesOutcome>) -> Vec<u8> {
|
pub fn badge(analysis_outcome: Option<&AnalyzeDependenciesOutcome>) -> Badge {
|
||||||
let opts = match analysis_outcome {
|
let opts = match analysis_outcome {
|
||||||
Some(outcome) => {
|
Some(outcome) => {
|
||||||
if outcome.any_outdated() {
|
if outcome.any_outdated() {
|
||||||
|
@ -32,12 +32,10 @@ pub fn svg(analysis_outcome: Option<&AnalyzeDependenciesOutcome>) -> Vec<u8> {
|
||||||
|
|
||||||
Badge::new(opts)
|
Badge::new(opts)
|
||||||
.expect("failed to create badge")
|
.expect("failed to create badge")
|
||||||
.to_svg()
|
|
||||||
.into_bytes()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn response(analysis_outcome: Option<&AnalyzeDependenciesOutcome>) -> Response {
|
pub fn response(analysis_outcome: Option<&AnalyzeDependenciesOutcome>) -> Response {
|
||||||
Response::new()
|
Response::new()
|
||||||
.with_header(ContentType("image/svg+xml;charset=utf-8".parse().unwrap()))
|
.with_header(ContentType("image/svg+xml;charset=utf-8".parse().unwrap()))
|
||||||
.with_body(svg(analysis_outcome))
|
.with_body(badge(analysis_outcome).to_svg().into_bytes())
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
use base64::display::Base64Display;
|
|
||||||
use hyper::Response;
|
use hyper::Response;
|
||||||
use maud::{Markup, html};
|
use maud::{Markup, html};
|
||||||
use ordermap::OrderMap;
|
use ordermap::OrderMap;
|
||||||
|
@ -126,8 +125,7 @@ fn render_success(analysis_outcome: AnalyzeDependenciesOutcome, repo_path: RepoP
|
||||||
let status_base_url = format!("{}/{}", &super::SELF_BASE_URL as &str, self_path);
|
let status_base_url = format!("{}/{}", &super::SELF_BASE_URL as &str, self_path);
|
||||||
let site_icon = get_site_icon(&repo_path.site);
|
let site_icon = get_site_icon(&repo_path.site);
|
||||||
|
|
||||||
let status_badge = badge::svg(Some(&analysis_outcome));
|
let status_data_uri = badge::badge(Some(&analysis_outcome)).to_svg_data_uri();
|
||||||
let status_data_url = format!("data:image/svg+xml;base64,{}", Base64Display::standard(&status_badge));
|
|
||||||
|
|
||||||
let hero_class = if analysis_outcome.any_outdated() {
|
let hero_class = if analysis_outcome.any_outdated() {
|
||||||
"is-warning"
|
"is-warning"
|
||||||
|
@ -147,7 +145,7 @@ fn render_success(analysis_outcome: AnalyzeDependenciesOutcome, repo_path: RepoP
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
img src=(status_data_url);
|
img src=(status_data_uri);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
div class="hero-footer" {
|
div class="hero-footer" {
|
||||||
|
|
Loading…
Reference in a new issue