diff --git a/README.md b/README.md index 8f84163..bf6b18a 100644 --- a/README.md +++ b/README.md @@ -22,37 +22,80 @@ The first command produces a GraphViz DOT file which looks like this: ``` digraph dependencies { - N0[label="cargo-count",shape=diamond,color=green]; - N1[label="ansi_term",shape=box]; - N2[label="clap",shape=diamond,color=green]; - N3[label="clippy",shape=box]; - N4[label="glob",shape=diamond,color=green]; - N5[label="regex",shape=diamond,color=green]; - N6[label="tabwriter",shape=diamond,color=green]; - N7[label="aho-corasick",shape=diamond,color=green]; - N8[label="memchr",shape=diamond,color=green]; - N9[label="bitflags",shape=diamond,color=green]; - N10[label="strsim",shape=diamond,color=green]; - N11[label="unicode-normalization",shape=diamond,color=green]; - N12[label="libc",shape=diamond,color=green]; - N13[label="regex-syntax",shape=diamond,color=green]; - N14[label="unicode-width",shape=diamond,color=green]; - N0 -> N1[label="",style=dashed,color=red]; - N0 -> N2[label="",color=orange]; - N0 -> N3[label="",style=dashed,color=red]; - N0 -> N4[label="",color=orange]; - N0 -> N5[label="",color=orange]; - N0 -> N6[label="",color=orange]; - N7 -> N8[label="",color=orange]; - N2 -> N1[label="",style=dashed,color=red]; - N2 -> N9[label="",color=orange]; - N2 -> N10[label="",color=orange]; - N3 -> N11[label="",color=orange]; - N8 -> N12[label="",color=orange]; - N5 -> N7[label="",color=orange]; - N5 -> N8[label="",color=orange]; - N5 -> N13[label="",color=orange]; - N6 -> N14[label="",color=orange]; + N0[label="cargo-count",shape=diamond,color=green, href="https://crates.io/crates/cargo-count"]; + N1[label="memchr",shape=diamond,color=green, href="https://crates.io/crates/memchr"]; + N2[label="ansi_term",shape=diamond,color=green, href="https://crates.io/crates/ansi_term"]; + N3[label="bitflags",shape=diamond,color=green, href="https://crates.io/crates/bitflags"]; + N4[label="aho-corasick",shape=diamond,color=green, href="https://crates.io/crates/aho-corasick"]; + N5[label="clap",shape=diamond,color=green, href="https://crates.io/crates/clap"]; + N6[label="clippy",shape=box, href="https://crates.io/crates/clippy"]; + N7[label="gitignore",shape=diamond,color=green, href="https://crates.io/crates/gitignore"]; + N8[label="glob",shape=diamond,color=green, href="https://crates.io/crates/glob"]; + N9[label="regex",shape=diamond,color=green, href="https://crates.io/crates/regex"]; + N10[label="tabwriter",shape=diamond,color=green, href="https://crates.io/crates/tabwriter"]; + N11[label="libc",shape=diamond,color=green, href="https://crates.io/crates/libc"]; + N12[label="strsim",shape=diamond,color=green, href="https://crates.io/crates/strsim"]; + N13[label="term_size",shape=diamond,color=green, href="https://crates.io/crates/term_size"]; + N14[label="unicode-segmentation",shape=diamond,color=green, href="https://crates.io/crates/unicode-segmentation"]; + N15[label="unicode-width",shape=diamond,color=green, href="https://crates.io/crates/unicode-width"]; + N16[label="vec_map",shape=diamond,color=green, href="https://crates.io/crates/vec_map"]; + N17[label="clippy_lints",shape=box, href="https://crates.io/crates/clippy_lints"]; + N18[label="matches",shape=box, href="https://crates.io/crates/matches"]; + N19[label="quine-mc_cluskey",shape=box, href="https://crates.io/crates/quine-mc_cluskey"]; + N20[label="regex-syntax",shape=diamond,color=green, href="https://crates.io/crates/regex-syntax"]; + N21[label="rustc-serialize",shape=box, href="https://crates.io/crates/rustc-serialize"]; + N22[label="semver",shape=box, href="https://crates.io/crates/semver"]; + N23[label="toml",shape=box, href="https://crates.io/crates/toml"]; + N24[label="unicode-normalization",shape=box, href="https://crates.io/crates/unicode-normalization"]; + N25[label="kernel32-sys",shape=diamond,color=green, href="https://crates.io/crates/kernel32-sys"]; + N26[label="winapi",shape=diamond,color=green, href="https://crates.io/crates/winapi"]; + N27[label="winapi-build",shape=diamond,color=green, href="https://crates.io/crates/winapi-build"]; + N28[label="nom",shape=box, href="https://crates.io/crates/nom"]; + N29[label="thread_local",shape=diamond,color=green, href="https://crates.io/crates/thread_local"]; + N30[label="utf8-ranges",shape=diamond,color=green, href="https://crates.io/crates/utf8-ranges"]; + N31[label="thread-id",shape=diamond,color=green, href="https://crates.io/crates/thread-id"]; + N0 -> N2[label="",color=orange]; + N0 -> N5[label="",color=orange]; + N0 -> N6[label="",style=dashed,color=red]; + N0 -> N7[label="",color=orange]; + N0 -> N8[label="",color=orange]; + N0 -> N9[label="",color=orange]; + N0 -> N10[label="",color=orange]; + N1 -> N11[label="",color=orange]; + N4 -> N1[label="",color=orange]; + N5 -> N2[label="",color=orange]; + N5 -> N3[label="",color=orange]; + N5 -> N11[label="",color=orange]; + N5 -> N12[label="",color=orange]; + N5 -> N13[label="",color=orange]; + N5 -> N14[label="",color=orange]; + N5 -> N15[label="",color=orange]; + N5 -> N16[label="",color=orange]; + N6 -> N17[label="",style=dashed,color=red]; + N7 -> N8[label="",color=orange]; + N9 -> N1[label="",color=orange]; + N9 -> N4[label="",color=orange]; + N9 -> N20[label="",color=orange]; + N9 -> N29[label="",color=orange]; + N9 -> N30[label="",color=orange]; + N10 -> N15[label="",color=orange]; + N13 -> N11[label="",color=orange]; + N13 -> N25[label="",color=orange]; + N13 -> N26[label="",color=orange]; + N17 -> N18[label="",style=dashed,color=red]; + N17 -> N19[label="",style=dashed,color=red]; + N17 -> N20[label="",style=dashed,color=red]; + N17 -> N21[label="",style=dashed,color=red]; + N17 -> N22[label="",style=dashed,color=red]; + N17 -> N23[label="",style=dashed,color=red]; + N17 -> N24[label="",style=dashed,color=red]; + N22 -> N28[label="",style=dashed,color=red]; + N23 -> N21[label="",style=dashed,color=red]; + N25 -> N26[label="",color=orange]; + N25 -> N27[label="",color=orange]; + N29 -> N31[label="",color=orange]; + N31 -> N11[label="",color=orange]; + N31 -> N25[label="",color=orange]; } ``` diff --git a/src/dep.rs b/src/dep.rs index ad948e4..b4649c3 100644 --- a/src/dep.rs +++ b/src/dep.rs @@ -65,10 +65,11 @@ impl ResolvedDep { } else { self.name.clone() }; + let href = format!(", href=\"https://crates.io/crates/{}\"", name.replace(" v", "/")); match self.kind() { - DepKind::Dev => writeln!(w, "[label={:?}{}];", name, c.dev_style), - DepKind::Optional => writeln!(w, "[label={:?}{}];", name, c.optional_style), - _ => writeln!(w, "[label={:?}{}];", name, c.build_style), + DepKind::Dev => writeln!(w, "[label={:?}{}{}];", name, c.dev_style, href), + DepKind::Optional => writeln!(w, "[label={:?}{}{}];", name, c.optional_style, href), + _ => writeln!(w, "[label={:?}{}{}];", name, c.build_style, href), } } }