Advertisement
Guest User

Untitled

a guest
Jul 4th, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. cargoLock = builtins.fromTOML (builtins.readFile ./Cargo.lock);
  2.  
  3. getCrates = cargoLock:
  4. mapAttrsToList
  5. (name: value:
  6. let m = builtins.match "checksum ([^ ]+) ([^ ]+).*" name;
  7. in if m == null then
  8. throw ("Don't know how to handle metadata '${name}'")
  9. else {
  10. name = elemAt m 0;
  11. version = elemAt m 1;
  12. sha256 = value;
  13. })
  14. cargoLock.metadata;
  15.  
  16. fetchCrates = cargoLock:
  17. map
  18. ({ name, version, sha256 }: fetchurl
  19. { name = "${name}-${version}.tar.gz";
  20. url = "https://crates.io/api/v1/crates/${name}/${version}/download";
  21. inherit sha256;
  22. })
  23. (getCrates cargoLock);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement