1{ 2 fetchzip, 3 repoRevToNameMaybe, 4 lib, 5}: 6 7lib.makeOverridable ( 8 { 9 url, 10 rev ? null, 11 tag ? null, 12 name ? repoRevToNameMaybe url (lib.revOrTag rev tag) "gitiles", 13 ... 14 }@args: 15 16 assert ( 17 lib.assertMsg (lib.xor (tag == null) ( 18 rev == null 19 )) "fetchFromGitiles requires one of either `rev` or `tag` to be provided (not both)." 20 ); 21 22 let 23 realrev = (if tag != null then "refs/tags/" + tag else rev); 24 in 25 26 fetchzip ( 27 { 28 inherit name; 29 url = "${url}/+archive/${realrev}.tar.gz"; 30 stripRoot = false; 31 meta.homepage = url; 32 } 33 // removeAttrs args [ 34 "url" 35 "tag" 36 "rev" 37 ] 38 ) 39 // { 40 inherit rev tag; 41 } 42)