summary refs log tree commit diff
path: root/pkgs/applications/science/misc/openmodelica/omlibrary/update-src-libs.sh
blob: b8f2e95923b5402b5078cf381cc3297a520f8485 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/env nix-shell
#! nix-shell -i bash -p bash

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/../mkderivation/src-main.nix`
EOF
    nix-build check.nix
    cat result/libraries/Makefile.libs
  )
}

getsha256() {
  URL=$(echo "$1" | sed 's/^"\(.*\)"$/\1/')
  REV=$(echo "$2" | sed 's/^"\(.*\)"$/\1/')
  SHA=$(nix run nixpkgs.nix-prefetch-git -c nix-prefetch-git --fetch-submodules "$URL" "$REV" 2>/dev/null | sed -n 's/.*"sha256": "\(.*\)",/\1/g p')
  echo "{ url = $1; rev = $2; sha256 = \"$SHA\"; fetchSubmodules = true; }"
}

OUT=src-libs.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