fooud/flake.nix

66 lines
1.9 KiB
Nix

{
description = "Declaratively update your data.";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
outputs = { self, nixpkgs, ... }: let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
package = pkgs.stdenv.mkDerivation rec {
pname = "fooud";
version = "1.0";
src = ./.;
deps = pkgs.callPackage ./build.zig.zon.nix {};
nativeBuildInputs = [
pkgs.zig.hook
pkgs.glibc
pkgs.libgit2
pkgs.gpgme
pkgs.libgpg-error
pkgs.pkg-config
];
zigBuildFlags = [
"--system" "${deps}"
# "-Doptimize=Debug"
# "-Dtarget=${system}"
];
};
in {
lib = builtins.import ./lib.nix { pkgs = pkgs; };
nixosModules = rec {
fooud = { pkgs, lib, config, inputs, ... }: {
options.programs.fooud.enable = lib.mkEnableOption ("fooud")
// { default = true; };
config = lib.mkIf config.programs.fooud.enable {
environment.systemPackages = [
pkgs.glibc
pkgs.libgit2
pkgs.gpgme
pkgs.libgpg-error
pkgs.nix
package
];
};
};
default = fooud;
};
packages.${system} = rec { default = package; fooud = default; };
checks.${system}.build = let
package = self.packages.${system}.default;
in pkgs.runCommand "fooud-build" { buildInputs = [
pkgs.git
pkgs.nix
]; } ''
mkdir repo
git -C repo init > /dev/null 2>&1
echo "hi" > repo/README.md
git -C repo config user.email "you@example.com" > /dev/null 2>&1
git -C repo config user.name "Your Name" > /dev/null 2>&1
git -C repo add . > /dev/null 2>&1
git -C repo commit -m "initial commit" > /dev/null 2>&1
# this check won't succeed until I find a way to run a chroot store
${package}/bin/fooud --git repo --dest test
'';
};
}