Files
keikos.work/flake.nix

90 lines
1.9 KiB
Nix

{
description = "My development environment";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
templ.url = "github:a-h/templ?ref=v0.2.793";
gitignore = {
url = "github:hercules-ci/gitignore.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self,
nixpkgs,
...
} @ 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 system pkgs);
templ = system: inputs.templ.packages.${system}.templ;
in {
packages = forAllSystems (system: pkgs: {
keikos = pkgs.callPackage ./derivation.nix {
templ = templ system;
gitignore = inputs.gitignore;
};
default = self.packages.${system}.keikos;
});
nixosModules = {
keikos = {
pkgs,
lib,
...
}: {
options._keikos-flake = with lib;
with lib.types; {
pkg = mkOption {
type = anything;
default = self.packages.${pkgs.system}.default;
};
};
imports = [
./module.nix
];
};
default = self.nixosModules.keikos;
};
legacyPackages = self.packages;
devShells = forAllSystems (system: pkgs: {
default = pkgs.mkShell {
CGO_ENABLED = "0";
hardeningDisable = ["all"];
buildInputs = with pkgs; [
# Javascript tools
eslint_d
nodejs_22
nodePackages_latest.eslint
# Go tools
go
gofumpt
golangci-lint
golines
gotools
delve
(templ system)
# Sqlite tools
sqlite
lazysql
# Aws S3
awscli
];
};
});
};
}