Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 53 lines 1.2 kB view raw
1let 2 modelSpecs = (builtins.fromJSON (builtins.readFile ./models.json)); 3in 4 5{ 6 lib, 7 stdenvNoCC, 8 fetchurl, 9}: 10 11let 12 withCodeAsKey = f: { code, ... }@attrs: lib.nameValuePair code (f attrs); 13 mkModelPackage = 14 { 15 name, 16 code, 17 version, 18 url, 19 checksum, 20 }: 21 stdenvNoCC.mkDerivation { 22 pname = "translatelocally-model-${code}"; 23 version = toString version; 24 25 src = fetchurl { 26 inherit url; 27 sha256 = checksum; 28 }; 29 dontUnpack = true; 30 31 installPhase = '' 32 TARGET="$out/share/translateLocally/models" 33 mkdir -p "$TARGET" 34 tar -xzf "$src" -C "$TARGET" 35 36 # avoid patching shebangs in inconsistently executable extra files 37 find "$out" -type f -exec chmod -x {} + 38 ''; 39 40 meta = { 41 description = "TranslateLocally model - ${name}"; 42 homepage = "https://translatelocally.com/"; 43 # https://github.com/browsermt/students/blob/master/LICENSE.md 44 license = lib.licenses.cc-by-sa-40; 45 }; 46 }; 47 allModelPkgs = lib.listToAttrs (map (withCodeAsKey mkModelPackage) modelSpecs); 48 49in 50allModelPkgs 51// { 52 passthru.updateScript = ./update.sh; 53}