1#!/bin/sh
2
3CWD=`pwd`
4
5chko() { (
6T=`mktemp -d`
7trap "rm -rf $T" EXIT INT PIPE
8cd $T
9cat >check.nix <<EOF
10with import <nixpkgs> {};
11fetchgit `cat $CWD/src-main.nix`
12EOF
13nix-build check.nix
14cat result/libraries/Makefile.libs
15) }
16
17getsha256() { (
18T=`mktemp -d`
19trap "rm -rf $T" EXIT INT PIPE
20cd $T
21
22L=`echo $2 | wc -c`
23if expr $L '<' 10 >/dev/null; then
24T=`echo $2 | sed 's@"\(.*\)"@"refs/tags/\1"@'`
25cat >check.nix <<EOF
26with import <nixpkgs> {};
27fetchgit {
28 url = $1;
29 rev = $T;
30 sha256 = "0000000000000000000000000000000000000000000000000000";
31}
32EOF
33SHA=`nix-build check.nix 2>&1 | sed -n 's/.*instead has ‘\(.*\)’.*/\1/g p'`
34echo "{ url = $1; rev = $T; sha256=\"$SHA\"; }"
35else
36cat >check.nix <<EOF
37with import <nixpkgs> {};
38fetchgit {
39 url = $1;
40 rev = $2;
41 sha256 = "0000000000000000000000000000000000000000000000000000";
42}
43EOF
44SHA=`nix-build check.nix 2>&1 | sed -n 's/.*instead has ‘\(.*\)’.*/\1/g p'`
45echo "{ url = $1; rev = $2; sha256=\"$SHA\"; }"
46fi
47
48# nix-build check.nix
49) }
50
51OUT=src-libs-git.nix
52
53echo '[' > $OUT
54
55chko |
56grep checkout-git.sh |
57tr \' \" |
58while read NM TGT URL BR REV ; do
59 echo Trying $TGT $URL $REV >&2
60 getsha256 $URL $REV >> $OUT || exit 1
61done
62
63echo ']' >> $OUT
64