at v192 64 lines 1.2 kB view raw
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