@@ -0,0 +1,44 @@
1+#! /usr/bin/env bash
2+
3+set -eu -o pipefail
4+
5+exit_trap()
6+{
7+ local lc="$BASH_COMMAND" rc=$?
8+ test $rc -eq 0 || echo "*** error $rc: $lc"
9+}
10+
11+trap exit_trap EXIT
12+
13+cd "$(dirname "$0")"
14+cabal2nix=$(git rev-parse --verify HEAD)
15+
16+cd nixpkgs
17+git reset -q --hard
18+git pull -q
19+cd ..
20+
21+cd hackage
22+# git reset -q --hard
23+git pull -q
24+DIR=$HOME/.cabal/packages/hackage.haskell.org
25+TAR=$DIR/00-index.tar
26+TARGZ=$TAR.gz
27+mkdir -p "$DIR"
28+rm -f "$TAR" "$TARGZ"
29+git archive --format=tar -o "$TAR" HEAD
30+gzip -k "$TAR"
31+hackage=$(git rev-parse --verify HEAD)
32+cd ..
33+
34+rm -rf dist
35+make --quiet cabal2nix.cabal
36+cabal build -v0 -j hackage2nix
37+dist/build/hackage2nix/hackage2nix >hackage-packages.nix 2>/dev/null
38+mv hackage-packages.nix nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
39+
40+cd nixpkgs
41+if [ -n "$(git status --porcelain)" ]; then
42+ git commit -q -m "hackage-packages.nix: update to https://github.com/commercialhaskell/all-cabal-files/commit/$hackage with hackage2nix revision $cabal2nix" -- pkgs/development/haskell-modules/hackage-packages.nix
43+ git push -q
44+fi