3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/pkgs/applications/science/misc/openmodelica/update-src-libs-git.sh

65 lines
1.2 KiB
Bash
Raw Normal View History

#!/bin/sh
CWD=`pwd`
chko() { (
T=`mktemp -d`
trap "rm -rf $T" EXIT INT PIPE
cd $T
cat >check.nix <<EOF
with import <nixpkgs> {};
fetchgit `cat $CWD/src-main.nix`
EOF
nix-build check.nix
cat result/libraries/Makefile.libs
) }
getsha256() { (
T=`mktemp -d`
trap "rm -rf $T" EXIT INT PIPE
cd $T
L=`echo $2 | wc -c`
if expr $L '<' 10 >/dev/null; then
T=`echo $2 | sed 's@"\(.*\)"@"refs/tags/\1"@'`
cat >check.nix <<EOF
with import <nixpkgs> {};
fetchgit {
url = $1;
rev = $T;
sha256 = "0000000000000000000000000000000000000000000000000000";
}
EOF
SHA=`nix-build check.nix 2>&1 | sed -n 's/.*instead has \(.*\).*/\1/g p'`
echo "{ url = $1; rev = $T; sha256=\"$SHA\"; }"
else
cat >check.nix <<EOF
with import <nixpkgs> {};
fetchgit {
url = $1;
rev = $2;
sha256 = "0000000000000000000000000000000000000000000000000000";
}
EOF
SHA=`nix-build check.nix 2>&1 | sed -n 's/.*instead has \(.*\).*/\1/g p'`
echo "{ url = $1; rev = $2; sha256=\"$SHA\"; }"
fi
# nix-build check.nix
) }
OUT=src-libs-git.nix
echo '[' > $OUT
chko |
grep checkout-git.sh |
tr \' \" |
while read NM TGT URL BR REV ; do
echo Trying $TGT $URL $REV >&2
getsha256 $URL $REV >> $OUT || exit 1
done
echo ']' >> $OUT