Distro for Linux for WebAssembly
at main 60 lines 1.1 kB view raw
1{ 2 run, 3 lib, 4}: 5 6rec { 7 file = 8 { 9 url, 10 name ? builtins.baseNameOf url, 11 hash ? lib.fakeHash, 12 }: 13 import <nix/fetchurl.nix> { 14 inherit url name hash; 15 }; 16 tar = 17 args: 18 let 19 result = file args; 20 in 21 run { inherit (result) name; } '' 22 mkdir $out 23 case "${result.url}" in 24 *gz) decompress=-z ;; 25 *bz2) decompress=-j ;; 26 *xz) decompress=-J ;; 27 *lz) decompress=--lzma ;; 28 *) decompress= ;; 29 esac 30 tar -x $decompress -f ${result} -C $out --strip-components=1 31 ''; 32 zip = 33 args: 34 let 35 result = file args; 36 in 37 run { inherit (result) name; } '' 38 mkdir $out 39 unzip -f ${result} -d $out 40 ''; 41 github = 42 { 43 owner, 44 repo, 45 rev, 46 ... 47 }@args: 48 tar ( 49 { 50 url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; 51 name = "${owner}-${repo}-${builtins.baseNameOf rev}"; 52 } 53 // removeAttrs args [ 54 "url" 55 "owner" 56 "repo" 57 "rev" 58 ] 59 ); 60}