From edeaf0e3a54581c32a917fa2ced879400d953d1f Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Tue, 17 Sep 2024 09:31:40 +1000 Subject: [PATCH] modules/community-builder: add nixpkgs clone Co-authored-by: nicoo <nicoo@mur.at> --- modules/darwin/community-builder/default.nix | 27 +++++++++++++++++++- modules/nixos/community-builder/default.nix | 9 +++++++ modules/shared/nixpkgs-clone.bash | 5 ++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 modules/shared/nixpkgs-clone.bash diff --git a/modules/darwin/community-builder/default.nix b/modules/darwin/community-builder/default.nix index 7c6e823..cb7f241 100644 --- a/modules/darwin/community-builder/default.nix +++ b/modules/darwin/community-builder/default.nix @@ -1,4 +1,9 @@ -{ inputs, pkgs, ... }: +{ + config, + inputs, + pkgs, + ... +}: { imports = [ "${inputs.self}/modules/shared/community-builder.nix" @@ -9,4 +14,24 @@ environment.systemPackages = [ pkgs.vim ]; + + launchd.daemons.nixpkgs-clone = { + environment = { + inherit (config.environment.variables) NIX_SSL_CERT_FILE; + }; + serviceConfig = { + StartCalendarInterval = [ + { + Hour = 0; + Minute = 0; + } + ]; + StandardErrorPath = "/var/log/nixpkgs-clone.log"; + StandardOutPath = "/var/log/nixpkgs-clone.log"; + }; + path = [ + pkgs.git + ]; + script = builtins.readFile "${inputs.self}/modules/shared/nixpkgs-clone.bash"; + }; } diff --git a/modules/nixos/community-builder/default.nix b/modules/nixos/community-builder/default.nix index 6825beb..11f07b8 100644 --- a/modules/nixos/community-builder/default.nix +++ b/modules/nixos/community-builder/default.nix @@ -22,4 +22,13 @@ programs.fish.enable = true; # disable generated completion environment.etc."fish/generated_completions".text = pkgs.lib.mkForce ""; + + systemd.services.nixpkgs-clone = { + serviceConfig.Type = "oneshot"; + startAt = "daily"; + path = [ + pkgs.git + ]; + script = builtins.readFile "${inputs.self}/modules/shared/nixpkgs-clone.bash"; + }; } diff --git a/modules/shared/nixpkgs-clone.bash b/modules/shared/nixpkgs-clone.bash new file mode 100644 index 0000000..c3c75ac --- /dev/null +++ b/modules/shared/nixpkgs-clone.bash @@ -0,0 +1,5 @@ +CLONE_DIR="/var/lib/nixpkgs.git" +if [ ! -d "$CLONE_DIR" ]; then + git clone --bare https://github.com/NixOS/nixpkgs.git "$CLONE_DIR" +fi +git -C "$CLONE_DIR" -c remote.origin.fetch="+refs/heads/*:refs/remotes/origin/*" -c fetch.prune=true fetch