git.iko.soy/typeable/cabal2nix
on v20150531 help sign in
typeable/cabal2nix/update-nixpkgs.sh
44 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 rev-parse --verify HEAD)
16cd nixpkgs
17git reset -q --hard
18git pull -q
19cd ..
21cd hackage
22# git reset -q --hard
23git pull -q
24DIR=$HOME/.cabal/packages/hackage.haskell.org
25TAR=$DIR/00-index.tar
26TARGZ=$TAR.gz
27mkdir -p "$DIR"
28rm -f "$TAR" "$TARGZ"
29git archive --format=tar -o "$TAR" HEAD
30gzip -k "$TAR"
31hackage=$(git rev-parse --verify HEAD)
32cd ..
34rm -rf dist
35make --quiet cabal2nix.cabal
36cabal build -v0 -j hackage2nix
37dist/build/hackage2nix/hackage2nix >hackage-packages.nix 2>/dev/null
38mv hackage-packages.nix nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
40cd nixpkgs
41if [ -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
44fi