git.iko.soy/typeable/cabal2nix
on v2.14.1 help sign in
typeable/cabal2nix/update-nixpkgs.sh
47 lines 1.1 kB history raw
1#! /usr/bin/env bash
3set -eu -o pipefail
5exit_trap()
6{
7 local lc="$BASH_COMMAND" rc=$?
8 test $rc -eq 0 || echo "*** error $rc: $lc"
9}
11trap exit_trap EXIT
13cd "$(dirname "$0")"
14cabal2nix=$(git describe --dirty)
16cd nixpkgs
17git reset -q --hard
18git clean -dxf -q
19git pull -q
20export NIX_PATH=nixpkgs=$PWD
21cd ..
23cd hackage
24git pull -q
25rm -f preferred-versions
26for n in */preferred-versions; do
27 cat >>preferred-versions "$n"
28 echo >>preferred-versions
29done
30hackage=$(git rev-parse --verify HEAD)
31cd ..
33# This command needs a recent development version of cabal-install. I don't
34# think this works properly in version 2.0.0.0 already.
35cabal -v0 new-run hackage2nix -- --nixpkgs="$PWD/nixpkgs" +RTS -M4G -RTS
37cd nixpkgs
38git add pkgs/development/haskell-modules
39if [ -n "$(git status --porcelain)" ]; then
40 cat <<EOF | git commit -n -q -F -
41hackage-packages.nix: automatic Haskell package set update
43This update was generated by hackage2nix $cabal2nix from Hackage revision
44https://github.com/commercialhaskell/all-cabal-hashes/commit/$hackage.
45EOF
46 git push -q
47fi