Remove cargo_metadata dependency

It was not pulling its weight.

Just look at that Cargo.lock diff!
This commit is contained in:
Jonas Platte 2021-01-11 21:27:42 +01:00 committed by Ryan Leckey
parent 5d564167ca
commit 0758ffd10e
5 changed files with 53 additions and 198 deletions

203
Cargo.lock generated
View file

@ -341,34 +341,13 @@ dependencies = [
"wyz",
]
[[package]]
name = "block-buffer"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
dependencies = [
"block-padding",
"byte-tools",
"byteorder",
"generic-array 0.12.3",
]
[[package]]
name = "block-buffer"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
dependencies = [
"generic-array 0.14.4",
]
[[package]]
name = "block-padding"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
dependencies = [
"byte-tools",
"generic-array",
]
[[package]]
@ -409,12 +388,6 @@ version = "3.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
[[package]]
name = "byte-tools"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
[[package]]
name = "byteorder"
version = "1.3.4"
@ -433,30 +406,6 @@ version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba"
[[package]]
name = "cargo_metadata"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8de60b887edf6d74370fc8eb177040da4847d971d6234c7b13a6da324ef0caf"
dependencies = [
"semver 0.9.0",
"serde",
"serde_derive",
"serde_json",
]
[[package]]
name = "cargo_metadata"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83f95cf4bf0dda0ac2e65371ae7215d0dce3c187613a9dbf23aaa9374186f97a"
dependencies = [
"semver 0.11.0",
"semver-parser 0.10.0",
"serde",
"serde_json",
]
[[package]]
name = "cast"
version = "0.2.3"
@ -730,7 +679,7 @@ version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4857fd85a0c34b3c3297875b747c1e02e06b6a0ea32dd892d8192b9ce0813ea6"
dependencies = [
"generic-array 0.14.4",
"generic-array",
"subtle",
]
@ -785,22 +734,13 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
[[package]]
name = "digest"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
dependencies = [
"generic-array 0.12.3",
]
[[package]]
name = "digest"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
dependencies = [
"generic-array 0.14.4",
"generic-array",
]
[[package]]
@ -864,12 +804,6 @@ version = "2.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59"
[[package]]
name = "fake-simd"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
[[package]]
name = "fastrand"
version = "1.4.0"
@ -1057,15 +991,6 @@ dependencies = [
"slab",
]
[[package]]
name = "generic-array"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
dependencies = [
"typenum",
]
[[package]]
name = "generic-array"
version = "0.14.4"
@ -1185,7 +1110,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15"
dependencies = [
"crypto-mac",
"digest 0.9.0",
"digest",
]
[[package]]
@ -1414,9 +1339,9 @@ version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b5a279bb9607f9f53c22d496eade00d138d1bdcccd07d74650387cf94942a15"
dependencies = [
"block-buffer 0.9.0",
"digest 0.9.0",
"opaque-debug 0.3.0",
"block-buffer",
"digest",
"opaque-debug",
]
[[package]]
@ -1675,12 +1600,6 @@ version = "11.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
[[package]]
name = "opaque-debug"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
[[package]]
name = "opaque-debug"
version = "0.3.0"
@ -1817,49 +1736,6 @@ version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
[[package]]
name = "pest"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53"
dependencies = [
"ucd-trie",
]
[[package]]
name = "pest_derive"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0"
dependencies = [
"pest",
"pest_generator",
]
[[package]]
name = "pest_generator"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55"
dependencies = [
"pest",
"pest_meta",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "pest_meta"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d"
dependencies = [
"maplit",
"pest",
"sha-1 0.8.2",
]
[[package]]
name = "pin-project"
version = "1.0.2"
@ -2172,7 +2048,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3648b669b10afeab18972c105e284a7b953a669b0be3514c27f9b17acab2f9cd"
dependencies = [
"byteorder",
"digest 0.9.0",
"digest",
"lazy_static",
"num-bigint-dig",
"num-integer",
@ -2203,7 +2079,7 @@ version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
dependencies = [
"semver 0.9.0",
"semver",
]
[[package]]
@ -2289,18 +2165,7 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
dependencies = [
"semver-parser 0.7.0",
"serde",
]
[[package]]
name = "semver"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
dependencies = [
"semver-parser 0.10.0",
"serde",
"semver-parser",
]
[[package]]
@ -2309,16 +2174,6 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]]
name = "semver-parser"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e012c6c5380fb91897ba7b9261a0f565e624e869d42fe1a1d03fa0d68a083d5"
dependencies = [
"pest",
"pest_derive",
]
[[package]]
name = "serde"
version = "1.0.118"
@ -2361,29 +2216,17 @@ dependencies = [
"serde",
]
[[package]]
name = "sha-1"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
dependencies = [
"block-buffer 0.7.3",
"digest 0.8.1",
"fake-simd",
"opaque-debug 0.2.3",
]
[[package]]
name = "sha-1"
version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce3cdf1b5e620a498ee6f2a171885ac7e22f0e12089ec4b3d22b84921792507c"
dependencies = [
"block-buffer 0.9.0",
"block-buffer",
"cfg-if 1.0.0",
"cpuid-bool",
"digest 0.9.0",
"opaque-debug 0.3.0",
"digest",
"opaque-debug",
]
[[package]]
@ -2398,11 +2241,11 @@ version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e7aab86fe2149bad8c507606bdb3f4ef5e7b2380eb92350f56122cca72a42a8"
dependencies = [
"block-buffer 0.9.0",
"block-buffer",
"cfg-if 1.0.0",
"cpuid-bool",
"digest 0.9.0",
"opaque-debug 0.3.0",
"digest",
"opaque-debug",
]
[[package]]
@ -2516,7 +2359,6 @@ version = "0.2.0"
dependencies = [
"anyhow",
"async-trait",
"cargo_metadata 0.10.0",
"chrono",
"clap 3.0.0-beta.2",
"console 0.11.3",
@ -2551,13 +2393,13 @@ dependencies = [
"crossbeam-channel",
"crossbeam-queue",
"crossbeam-utils",
"digest 0.9.0",
"digest",
"either",
"encoding_rs",
"futures-channel",
"futures-core",
"futures-util",
"generic-array 0.14.4",
"generic-array",
"git2",
"hashlink",
"hex",
@ -2580,7 +2422,7 @@ dependencies = [
"rustls",
"serde",
"serde_json",
"sha-1 0.9.2",
"sha-1",
"sha2",
"smallvec",
"sqlformat",
@ -2660,7 +2502,6 @@ dependencies = [
name = "sqlx-macros"
version = "0.4.2"
dependencies = [
"cargo_metadata 0.12.1",
"dotenv",
"either",
"futures",
@ -3116,12 +2957,6 @@ version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
[[package]]
name = "ucd-trie"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
[[package]]
name = "unicode-bidi"
version = "0.3.4"

View file

@ -37,9 +37,8 @@ async-trait = "0.1.30"
console = "0.11.3"
dialoguer = "0.7.1"
serde_json = { version = "1.0.53", features = ["preserve_order"] }
serde = "1.0.110"
serde = { version = "1.0.110", features = ["derive"] }
glob = "0.3.0"
cargo_metadata = "0.10.0"
openssl = { version = "0.10.30", optional = true }
# workaround for https://github.com/rust-lang/rust/issues/29497
remove_dir_all = "0.6.0"

View file

@ -1,11 +1,12 @@
use anyhow::{bail, Context};
use cargo_metadata::MetadataCommand;
use console::style;
use remove_dir_all::remove_dir_all;
use serde::Deserialize;
use sqlx::any::{AnyConnectOptions, AnyKind};
use std::collections::BTreeMap;
use std::fs::File;
use std::io::{BufReader, BufWriter};
use std::path::PathBuf;
use std::process::Command;
use std::str::FromStr;
use std::time::SystemTime;
@ -86,10 +87,18 @@ fn run_prepare_step(merge: bool, cargo_args: Vec<String>) -> anyhow::Result<Quer
let cargo = env::var("CARGO")
.context("`prepare` subcommand may only be invoked as `cargo sqlx prepare`")?;
let metadata = MetadataCommand::new()
.cargo_path(&cargo)
.exec()
.context("failed to execute `cargo metadata`")?;
let output = Command::new(&cargo)
.args(&["metadata", "--format-version=1"])
.output()
.context("Could not fetch metadata")?;
#[derive(Deserialize)]
struct Metadata {
target_directory: PathBuf,
}
let metadata: Metadata =
serde_json::from_slice(&output.stdout).context("Invalid `cargo metadata` output")?;
// try removing the target/sqlx directory before running, as stale files
// have repeatedly caused issues in the past.

View file

@ -34,7 +34,7 @@ _rt-async-std = []
_rt-tokio = []
# offline building support
offline = ["sqlx-core/offline", "serde", "serde_json", "hex", "sha2"]
offline = ["sqlx-core/offline", "hex", "sha2"]
# database
mysql = [ "sqlx-core/mysql" ]
@ -50,10 +50,9 @@ time = [ "sqlx-core/time" ]
ipnetwork = [ "sqlx-core/ipnetwork" ]
uuid = [ "sqlx-core/uuid" ]
bit-vec = [ "sqlx-core/bit-vec" ]
json = [ "sqlx-core/json", "serde_json" ]
json = [ "sqlx-core/json" ]
[dependencies]
cargo_metadata = "0.12.1"
dotenv = { version = "0.15.0", default-features = false }
futures = { version = "0.3.4", default-features = false, features = [ "executor" ] }
hex = { version = "0.4.2", optional = true }
@ -63,8 +62,8 @@ once_cell = "1.5.2"
proc-macro2 = { version = "1.0.9", default-features = false }
sqlx-core = { version = "0.4.2", default-features = false, path = "../sqlx-core" }
sqlx-rt = { version = "0.2.0", default-features = false, path = "../sqlx-rt" }
serde = { version = "1.0.111", optional = true }
serde_json = { version = "1.0.30", features = [ "preserve_order" ], optional = true }
serde = { version = "1.0.111", features = ["derive"] }
serde_json = { version = "1.0.30", features = [ "preserve_order" ] }
sha2 = { version = "0.9.1", optional = true }
syn = { version = "1.0.30", default-features = false, features = [ "full" ] }
quote = { version = "1.0.6", default-features = false }

View file

@ -1,8 +1,10 @@
use std::borrow::Cow;
use std::env;
use std::path::{Path, PathBuf};
use std::process::Command;
use proc_macro2::{Span, TokenStream};
use serde::Deserialize;
use syn::Type;
use url::Url;
@ -29,11 +31,22 @@ mod output;
static CRATE_ROOT: Lazy<PathBuf> = Lazy::new(|| {
let manifest_dir = env::var("CARGO_MANIFEST_DIR").expect("`CARGO_MANIFEST_DIR` must be set");
let metadata = cargo_metadata::MetadataCommand::new()
let cargo = env::var_os("CARGO").expect("`CARGO` must be set");
let output = Command::new(&cargo)
.args(&["metadata", "--format-version=1"])
.current_dir(manifest_dir)
.exec()
.output()
.expect("Could not fetch metadata");
#[derive(Deserialize)]
struct Metadata {
workspace_root: PathBuf,
}
let metadata: Metadata =
serde_json::from_slice(&output.stdout).expect("Invalid `cargo metadata` output");
metadata.workspace_root
});