Files
gitea/flake.nix

81 lines
1.7 KiB
Nix

{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
};
outputs = {
nixpkgs,
self,
...
} @ inputs: let
systems = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
forAllSystems = f:
nixpkgs.lib.genAttrs systems (
system: let
pkgs = import nixpkgs {inherit system;};
in
f {
inherit pkgs;
inherit (pkgs) lib;
}
);
in {
devShells = forAllSystems ({pkgs, ...}: {
default = with pkgs; let
# only bump toolchain versions here
go = go_1_25;
nodejs = nodejs_24;
python3 = python312;
# Platform-specific dependencies
linuxOnlyInputs = lib.optionals pkgs.stdenv.isLinux [
glibc.static
];
linuxOnlyEnv = lib.optionalAttrs pkgs.stdenv.isLinux {
CFLAGS = "-I${glibc.static.dev}/include";
LDFLAGS = "-L ${glibc.static}/lib";
};
in
pkgs.mkShell {
buildInputs =
[
# generic
git
git-lfs
gnumake
gnused
gnutar
gzip
zip
# frontend
nodejs
# linting
python3
poetry
# backend
go
gofumpt
sqlite
]
++ linuxOnlyInputs;
GO = "${go}/bin/go";
GOROOT = "${go}/share/go";
TAGS = "sqlite sqlite_unlock_notify";
STATIC = "true";
}
// linuxOnlyEnv;
});
});
};
}