Comments (4)
might get away with checking if any files contained inside the extracted sources are newer than downloaded source archive (.crate)
from cargo-cache.
compare in-zip file against local source cache
https://rust-lang-nursery.github.io/rust-cookbook/compression/tar.html
use flate2::read::GzDecoder;
use std::fs::File;
use tar::Archive;
fn main() -> Result<(), std::io::Error> {
let path = "datetime-0.5.2.crate";
let tar_gz = File::open(path)?;
let tar = GzDecoder::new(tar_gz);
let mut archive = Archive::new(tar);
let files = archive.entries()?;
files.into_iter().for_each(|f| {
let file = f.unwrap();
// println!("{}", file.path().unwrap().display());
// println!("{:?}", file.header());
// print the file name and the size
println!("{}, {} bytes", file.path().unwrap().display(), file.size());
});
Ok(())
}
from cargo-cache.
For the git source, we can go into checkouts, for instance: ~/.cargo/git/checkouts/druid-f6980810fb848923/c42de0b
and check with git-status
/ git diff
from cargo-cache.
still missing: git checkout verification, check something like
git status --porcelain
also handle what happens if we have checkout but no repo?
from cargo-cache.
Related Issues (20)
- check msrv on CI
- path/to/cargo-cache has wrong cmd in --help HOT 1
- 'verify' incorrectly determines paths as missing due to different unicode representations. HOT 1
- Move static git bundling to a (default) feature HOT 7
- clean-unref: documentation & feat suggestion (recursivity) HOT 4
- cargo cache -a on a arm procesor HOT 3
- make sure http registry works
- Build failed with "error: failed to run custom build command for `libgit2-sys v0.12.26+1.3.0`" HOT 4
- cargo-cache toolchain panics HOT 3
- --keep-duplicate-crates seems to be partially broken HOT 4
- --keep-duplicate-crates version sorting not always correct
- cachepot support HOT 2
- Recompressing 'tree-sitter-haskell-74c278e7a2ef8d7d': 262.35 MB => HOT 4
- Odd wording HOT 1
- Date doesn't seem validated HOT 1
- gc: show number of seconds it took
- gc: compress multiple repos at a time (-j) HOT 2
- `cargo audit` issues found in the most recent crates.io release HOT 1
- build fails on Mac with MacPorts, because of libgit2 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cargo-cache.