@@ -0,0 +1,36 @@
1+{ stdenv, writeScriptBin, coreutils, git, nix-tools, cabal-install, nix-prefetch-git }:
2+
3+with stdenv.lib;
4+
5+writeScriptBin "update-hackage-nix" ''
6+ #!${stdenv.shell}
7+
8+ set -euo pipefail
9+
10+ export PATH="${makeBinPath [ coreutils git nix-tools cabal-install nix-prefetch-git ]}"
11+
12+ # Make sure the hackage index is recent.
13+ cabal new-update
14+
15+ if [ -d hackage.nix ]; then
16+ cd hackage.nix
17+ git pull --ff-only
18+ cd ..
19+ else
20+ git clone git@github.com:input-output-hk/hackage.nix.git
21+ fi
22+
23+ hackage-to-nix hackage.nix
24+
25+ cd hackage.nix
26+ git add .
27+ git commit --allow-empty -m "Automatic update for $(date)"
28+
29+ rev=$(git rev-parse HEAD)
30+
31+ git push
32+
33+ cd ..
34+
35+ nix-prefetch-git https://github.com/input-output-hk/hackage.nix.git --rev "$rev" | tee hackage-src.json
36+''