mirror of
https://codeberg.org/ziglings/exercises.git
synced 2025-12-27 16:05:37 +00:00
62 lines
1.6 KiB
Nix
62 lines
1.6 KiB
Nix
{
|
|
description = "Ziglings - Learn Zig by fixing tiny broken programs";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
|
|
zig-overlay.url = "github:mitchellh/zig-overlay";
|
|
zig-overlay.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
zls.url = "github:zigtools/zls";
|
|
zls.inputs.nixpkgs.follows = "nixpkgs";
|
|
zls.inputs.zig-overlay.follows = "zig-overlay";
|
|
};
|
|
|
|
outputs =
|
|
{
|
|
self,
|
|
nixpkgs,
|
|
flake-utils,
|
|
zig-overlay,
|
|
zls,
|
|
}:
|
|
flake-utils.lib.eachDefaultSystem (
|
|
system:
|
|
let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
|
|
# Define the specific Zig version here so we can pass it to ZLS
|
|
zig = zig-overlay.packages.${system}.master;
|
|
|
|
# Override ZLS to ensure it builds using our specific Zig version
|
|
zls-pkg = zls.packages.${system}.zls.overrideAttrs (old: {
|
|
nativeBuildInputs = [ zig ];
|
|
});
|
|
in
|
|
{
|
|
devShells.default = pkgs.mkShell {
|
|
nativeBuildInputs = [
|
|
zig
|
|
zls-pkg
|
|
];
|
|
|
|
shellHook = ''
|
|
echo "====================================="
|
|
echo "Ziglings development environment"
|
|
echo "====================================="
|
|
echo ""
|
|
echo "Zig version:"
|
|
zig version
|
|
echo ""
|
|
echo "ZLS version:"
|
|
zls --version
|
|
echo ""
|
|
echo "Run 'zig build' to get started!"
|
|
echo "====================================="
|
|
'';
|
|
};
|
|
}
|
|
);
|
|
}
|