1 #! /usr/bin/env nix-shell
2 #! nix-shell -i bash -p coreutils curl jq gnused haskellPackages.cabal2nix-unstable -I nixpkgs=.
4 # Updates cabal2nix-unstable to the latest master of the nixos/cabal2nix repository.
5 # See regenerate-hackage-packages.sh for details on the purpose of this script.
9 # fetch current master HEAD from Github
10 head_info
="$(curl -H "Accept
: application
/vnd.github.v3
+json
" https://api.github.com/repos/NixOS/cabal2nix/branches/master)"
12 commit
="$(jq -r .commit.sha <<< "$head_info")"
13 # extract commit timestamp and convert to date
14 date="$(date "--date=$
(jq
-r .commit.commit.committer.
date <<< "$head_info")" +%F)"
15 # generate nix expression from cabal file, replacing the version with the commit date
16 echo '# This file defines cabal2nix-unstable, used by maintainers/scripts/haskell/regenerate-hackage-packages.sh.' > pkgs
/development
/haskell-modules
/cabal2nix-unstable.nix
17 cabal2nix
--subpath cabal2nix
"https://github.com/NixOS/cabal2nix/archive/$commit.tar.gz" |
sed -e 's/version = ".*"/version = "'"unstable-$date"'"/' >> pkgs
/development
/haskell-modules
/cabal2nix-unstable.nix