56 lines
1.8 KiB
Nix
56 lines
1.8 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.libgit2 pkgs.gpgme ];
|
|
zigBuildFlags = [
|
|
"--system" "${deps}"
|
|
"-Doptimize=Debug"
|
|
];
|
|
};
|
|
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.libgit2
|
|
pkgs.gpgme
|
|
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
|
|
'';
|
|
};
|
|
}
|