hscloud/shell.nix
Serge Bazanski 97b5cd7b58 go: re-do the entire thing
This is a mega-change, but attempting to split this up further is
probably not worth the effort.

Summary:

1. Bump up bazel, rules_go, and others.
2. Switch to new go target naming (bye bye go_default_library)
3. Move go deps to go.mod/go.sum, use make gazelle generate from that
4. Bump up Python deps a bit

And also whatever was required to actually get things to work - loads of
small useless changes.

Tested to work on NixOS and Ubuntu 20.04:

   $ bazel build //...
   $ bazel test //...

Change-Id: I8364bdaa1406b9ae4d0385a6b607f3e7989f98a9
Reviewed-on: https://gerrit.hackerspace.pl/c/hscloud/+/1583
Reviewed-by: q3k <q3k@hackerspace.pl>
2023-09-22 21:50:19 +00:00

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