4
0
Fork 2
mirror of https://gerrit.hackerspace.pl/hscloud synced 2024-10-07 18:37:44 +00:00
hscloud/shell.nix
Piotr Dobrowolski ebae01636e shell: fix colmena run
Somehow SHELL variable from host was still kept in pure shell.

This should prevent colmena deploys failing when host is built against
libc newer than the one in our fhsuserenv.

Change-Id: Ia98e35e71d8d3a0ae2920a18ff2fe6a2e8ed2d53
Reviewed-on: https://gerrit.hackerspace.pl/c/hscloud/+/1910
Reviewed-by: q3k <q3k@hackerspace.pl>
2024-03-07 22:47:01 +00:00

82 lines
2.1 KiB
Nix

# 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 SHELL="${pkgs.bash}/bin/bash"
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
colmena
];
multiPkgs = pkgs: [
(pkgs.runCommand "protocols" {}
''
mkdir -p $out/etc
ln -s ${pkgs.iana-etc}/etc/protocols $out/etc/protocols
'')
];
runScript = wrapper;
}).env