git.iko.soy/typeable/cabal2nix
on v20160611 help sign in
typeable/cabal2nix/hackage2nix/update-nixpkgs.sh
67 lines 1.5 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
21nixpkgs=$(git rev-parse --verify HEAD)
22cd ..
24cd lts-haskell
25git pull -q
26ltshaskell=$(git rev-parse --verify HEAD)
27cd ..
29cd stackage-nightly
30git pull -q
31stackagenightly=$(git rev-parse --verify HEAD)
32cd ..
34cd hackage
35git pull -q
36rm -f preferred-versions
37for n in */preferred-versions; do
38 cat >>preferred-versions "$n"
39 echo >>preferred-versions
40done
41DIR=$HOME/.cabal/packages/hackage.haskell.org
42TAR=$DIR/00-index.tar
43TARGZ=$TAR.gz
44mkdir -p "$DIR"
45rm -f "$TAR" "$TARGZ"
46git archive --format=tar -o "$TAR" HEAD
47gzip -k "$TAR"
48hackage=$(git rev-parse --verify HEAD)
49cd ..
51stack --verbosity 0 build --test hackage2nix
52stack --verbosity 0 exec hackage2nix -- --nixpkgs="$PWD/nixpkgs" +RTS -M4G -RTS
54cd nixpkgs
55git add pkgs/development/haskell-modules
56if [ -n "$(git status --porcelain)" ]; then
57 cat <<EOF | git commit -q -F -
58hackage-packages.nix: update Haskell package set
60This update was generated by hackage2nix $cabal2nix using the following inputs:
62 - Hackage: https://github.com/commercialhaskell/all-cabal-hashes/commit/$hackage
63 - LTS Haskell: https://github.com/fpco/lts-haskell/commit/$ltshaskell
64 - Stackage Nightly: https://github.com/fpco/stackage-nightly/commit/$stackagenightly
65EOF
66 git push -q
67fi