building for all systems

This commit is contained in:
John Lancaster
2025-12-07 11:23:27 -06:00
parent db0c0a148e
commit d0d73e19d2

View File

@@ -10,8 +10,10 @@
outputs = { self, nixpkgs, home-manager }:
let
systems = [ "x86_64-linux" "aarch64-linux" ];
forAllSystems = nixpkgs.lib.genAttrs systems;
# Define a function to build the resticprofile package for a given system:
resticprofilePkg = { pkgs, lib, ... }:
resticprofilePkg = pkgs:
pkgs.buildGoModule rec {
pname = "resticprofile";
version = "0.32.0";
@@ -19,12 +21,12 @@
owner = "creativeprojects";
repo = "resticprofile";
rev = "v${version}";
sha256 = ""; # source tarball hash
sha256 = "sha256-fmYsoGYppNgbtoX18aF5UHBG9ieYorBJ9JZkwrR+UBI="; # source tarball hash
};
vendorHash = ""; # Correct vendor hash
vendorHash = "sha256-/GVWjOvkYe7xMRjANKIKV6FSU0F5VY1ZP/ppgAJyhvw="; # Correct vendor hash
goPackagePath = "github.com/creativeprojects/resticprofile";
doCheck = false; # Disable tests due to sandboxed build environment
meta = with lib; {
meta = with pkgs.lib; {
description = "Configuration profiles manager and scheduler for restic backup";
homepage = "https://creativeprojects.github.io/resticprofile/";
license = licenses.gpl3Only;
@@ -33,14 +35,28 @@
};
in {
# Provide the package for all supported systems:
packages = nixpkgs.lib.genAttrs systems (system:
let pkgs = import nixpkgs { inherit system; };
in { resticprofile = resticprofilePkg { inherit pkgs; lib = pkgs.lib; }; }
packages = forAllSystems (system:
let
pkgs = import nixpkgs { inherit system; };
in {
resticprofile = resticprofilePkg pkgs;
default = resticprofilePkg pkgs;
}
);
# Provide the Home Manager module
homeManagerModules = {
resticprofile = ./resticprofile.nix;
resticprofile = { config, lib, pkgs, ... }:
let
# Use the package built by this flake
resticprofilePackage = self.packages.${pkgs.system}.resticprofile;
in {
imports = [ ./resticprofile.nix ];
config = lib.mkIf config.programs.resticprofile.enable {
programs.resticprofile.package = lib.mkDefault resticprofilePackage;
};
};
default = self.homeManagerModules.resticprofile;
};
};
}