Skip to content

Commit 7a4094e

Browse files
committed
emit inline checksum
1 parent 77c1f66 commit 7a4094e

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

src/main.rs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use cargo::core::registry::PackageRegistry;
2222
use cargo::core::resolver::features::HasDevUnits;
2323
use cargo::core::resolver::CliFeatures;
2424
use cargo::core::source::GitReference;
25-
use cargo::core::{Package, PackageSet, Resolve, Workspace};
25+
use cargo::core::{Package, PackageSet, Resolve, Workspace, PackageId};
2626
use cargo::ops;
2727
use cargo::util::{important_paths, CargoResult};
2828
use cargo::{CliResult, Config};
@@ -123,6 +123,14 @@ impl<'cfg> PackageInfo<'cfg> {
123123
}
124124
}
125125

126+
fn get_checksum(package_set: &PackageSet, pkg_id: PackageId) -> String {
127+
match package_set.get_one(pkg_id).map(|pkg| pkg.summary().checksum()) {
128+
Err(_) | Ok(None) => "".to_string(),
129+
Ok(Some(crc)) => format!(";sha256sum={crc};{}-{}.sha256sum={crc}",
130+
pkg_id.name(), pkg_id.version()),
131+
}
132+
}
133+
126134
#[derive(StructOpt, Debug)]
127135
struct Args {
128136
/// Silence all output
@@ -201,6 +209,7 @@ fn real_main(options: Args, config: &mut Config) -> CliResult {
201209

202210
// Resolve all dependencies (generate or use Cargo.lock as necessary)
203211
let resolve = md.resolve()?;
212+
let package_set = resolve.0;
204213

205214
// build the crate URIs
206215
let mut src_uri_extras = vec![];
@@ -215,10 +224,11 @@ fn real_main(options: Args, config: &mut Config) -> CliResult {
215224
} else if src_id.is_registry() {
216225
// this package appears in a crate registry
217226
Some(format!(
218-
" crate://{}/{}/{} \\\n",
227+
" crate://{}/{}/{}{} \\\n",
219228
CRATES_IO_URL,
220229
pkg.name(),
221-
pkg.version()
230+
pkg.version(),
231+
get_checksum(&package_set, pkg)
222232
))
223233
} else if src_id.is_path() {
224234
// we don't want to spit out path based

0 commit comments

Comments
 (0)