| # Shell for being able to use bazel on NixOS (or on any operating system with Nix installed). |
| |
| let |
| |
| hscloud = import ./default.nix {}; |
| |
| in with hscloud.pkgs; let |
| |
| fontconfig = pkgs.writeText "fc-00-nixos-cache.conf" '' |
| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"> |
| <fontconfig> |
| <include>/etc/fonts/fonts.conf</include> |
| <dir>${pkgs.roboto}</dir> |
| </fontconfig> |
| ''; |
| |
| wrapper = pkgs.writeScript "wrapper.sh" |
| '' |
| export NIX_SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt" |
| export SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt" |
| export FONTCONFIG_FILE="${fontconfig}" |
| export HSCLOUD_NIX=yes |
| |
| source ${toString ./.}/env.sh |
| |
| # FIXME: //tools:install runs in a different PATH which thrashes our cache |
| # and causes massive rebuilds on every launch... This next line is the only |
| # important part off tools/install.sh |
| # bazel run //tools:install |
| #bazel build //tools/... //cluster/tools/... |
| |
| # Fancy colorful PS1 to make people notice easily they're in hscloud. |
| PS1='\[\033]0;\u/hscloud:\w\007\]' |
| if type -P dircolors >/dev/null ; then |
| PS1+='\[\033[01;35m\]\u/hscloud\[\033[01;34m\] \w \$\[\033[00m\] ' |
| fi |
| export PS1 |
| |
| exec bash --noprofile --norc "$@" |
| ''; |
| |
| in (pkgs.buildFHSUserEnv { |
| name = "hscloud-build"; |
| targetPkgs = pkgs: with pkgs; [ |
| bazel_5 |
| postgresql |
| python310 |
| openjdk11 |
| openldap.dev cyrus_sasl.dev # for python-ldap |
| # No wkhtmltopdf as it got yoten from the hydra build set, and building it |
| # takes ages. Run locally in docker container instead. |
| #wkhtmltopdf |
| gcc binutils clang |
| libxcrypt-legacy |
| pwgen |
| tmate |
| git |
| which |
| gnupg |
| nettools |
| file |
| curl |
| netcat |
| nix |
| vim |
| openssh |
| libxcrypt |
| zlib |
| ]; |
| multiPkgs = pkgs: [ |
| (pkgs.runCommand "protocols" {} |
| '' |
| mkdir -p $out/etc |
| ln -s ${pkgs.iana-etc}/etc/protocols $out/etc/protocols |
| '') |
| ]; |
| runScript = wrapper; |
| }).env |