Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 51 lines 1.4 kB view raw
1#!/usr/bin/env nix-shell 2#! nix-shell -p coreutils -i bash 3 4scriptDir=$(cd "`dirname "$0"`"; pwd) 5echo "scriptDir='$scriptDir'" 6 7function get_pkg_out() { 8 local pkg="$1" 9 local suffix="${2:-}" 10 local nixExp="with (import <nixpkgs> {}); ${pkg}" 11 echo "$(nix-build -E "$nixExp" --no-out-link)${suffix}" 12} 13 14interpreter="$(get_pkg_out "stdenv.cc.libc" "/lib/ld-linux-x86-64.so.2")" 15echo "interpreter='$interpreter'" 16 17# For clangformat dep on 'libtinfo.so.5'. 18ncursesLibDir="$(get_pkg_out "ncurses5.out" "/lib")" 19echo "ncursesLibDir='$ncursesLibDir'" 20 21# For clanformat dep on 'libstdc++.so.6'. 22stdcppLibDir="$(get_pkg_out "stdenv.cc.cc.lib" "/lib")" 23echo "stdcppLibDir='$stdcppLibDir'" 24 25# For clangformat dep on 'libz.so.1'. 26zlibLibDir="$(get_pkg_out "zlib.out" "/lib")" 27echo "zlibLibDir='$zlibLibDir'" 28 29function patchelf_mono() { 30 local exe="$1" 31 patchelf --set-interpreter "$interpreter" "$exe" 32} 33 34function patchelf_clangformat() { 35 local exe="$1" 36 patchelf --set-interpreter "$interpreter" "$exe" 37 local rpath="$ncursesLibDir:$stdcppLibDir:$zlibLibDir" 38 patchelf --set-rpath "$rpath" "$exe" 39} 40 41function print_nix_version_clangtools() { 42 nixClangToolsBin="$(get_pkg_out "clang-tools" "/bin")" 43 echo "nixClangToolsBin='$nixClangToolsBin'" 44 $nixClangToolsBin/clang-format --version 45} 46 47function print_nix_version_mono() { 48 nixMonoBin="$(get_pkg_out "mono" "/bin")" 49 echo "nixMonoBin='$nixMonoBin'" 50 $nixMonoBin/mono --version 51}