Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at release-19.03 64 lines 1.8 kB view raw
1# Updating the dependencies for this package: 2# 3# wget https://raw.githubusercontent.com/mint-lang/mint/0.3.1/shard.lock 4# nix-shell -p crystal libyaml --run 'crystal run crystal2nix.cr' 5# 6{stdenv, lib, fetchFromGitHub, crystal, zlib, openssl, duktape, which, libyaml }: 7let 8 crystalPackages = lib.mapAttrs (name: src: 9 stdenv.mkDerivation { 10 name = lib.replaceStrings ["/"] ["-"] name; 11 src = fetchFromGitHub src; 12 phases = "installPhase"; 13 installPhase = ''cp -r $src $out''; 14 passthru = { libName = name; }; 15 } 16 ) (import ./shards.nix); 17 18 crystalLib = stdenv.mkDerivation { 19 name = "crystal-lib"; 20 src = lib.attrValues crystalPackages; 21 libNames = lib.mapAttrsToList (k: v: [k v]) crystalPackages; 22 phases = "buildPhase"; 23 buildPhase = '' 24 mkdir -p $out 25 linkup () { 26 while [ "$#" -gt 0 ]; do 27 ln -s $2 $out/$1 28 shift; shift 29 done 30 } 31 linkup $libNames 32 ''; 33 }; 34in 35stdenv.mkDerivation rec { 36 version = "0.3.1"; 37 name = "mint-${version}"; 38 src = fetchFromGitHub { 39 owner = "mint-lang"; 40 repo = "mint"; 41 rev = version; 42 sha256 = "1f49ax045zdjj0ypc2j4ms9gx80rl63qcsfzm3r0k0lcavfp57zr"; 43 }; 44 45 nativeBuildInputs = [ which crystal zlib openssl duktape libyaml ]; 46 47 buildPhase = '' 48 mkdir -p $out/bin tmp 49 cd tmp 50 ln -s ${crystalLib} lib 51 cp -r $src/* . 52 crystal build src/mint.cr -o $out/bin/mint --verbose --progress --release --no-debug 53 ''; 54 55 installPhase = ''true''; 56 57 meta = { 58 description = "A refreshing language for the front-end web"; 59 homepage = https://mint-lang.com/; 60 license = stdenv.lib.licenses.bsd3; 61 maintainers = with stdenv.lib.maintainers; [ manveru ]; 62 platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ]; 63 }; 64}