From 3e7bf2721f2755624e5a99c10d8d48012f587586 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Tue, 29 Jul 2025 18:20:33 +0100 Subject: [PATCH] Re-configure dev-commit --- modules2/dev-commit.nix | 2 -- modules2/hosts/t480/dev-commit.nix | 20 ++++++++++++++++++++ modules2/zsh/dot-dir.nix | 4 +++- packages/dev-commit.nix | 28 ++++++++++++++++++++++------ 4 files changed, 45 insertions(+), 9 deletions(-) create mode 100644 modules2/hosts/t480/dev-commit.nix diff --git a/modules2/dev-commit.nix b/modules2/dev-commit.nix index 06740026..d767a116 100644 --- a/modules2/dev-commit.nix +++ b/modules2/dev-commit.nix @@ -56,8 +56,6 @@ systemd.user = lib.mkIf cfg.schedule.enable { services.dev-commit = { - Install.WantedBy = [ "default.target" ]; - Service = { Environment = [ "DEV_COMMIT_PATHS=${repoPaths}" ]; ExecStart = "${lib.getExe pkgs.dev-commit}"; diff --git a/modules2/hosts/t480/dev-commit.nix b/modules2/hosts/t480/dev-commit.nix new file mode 100644 index 00000000..cc50b52e --- /dev/null +++ b/modules2/hosts/t480/dev-commit.nix @@ -0,0 +1,20 @@ +{ config, ... }: + +{ + flake.modules.nixos."nixosConfigurations/t480".home-manager.users.${config.flake.meta.owner.username} = + hmArgs: { + programs.dev-commit.schedule.enable = true; + programs.dev-commit.schedule.time = "daily"; + + programs.dev-commit.repoPaths = + let + repos = "${hmArgs.config.xdg.userDirs.extraConfig.XDG_REPOS_DIR}/forgejo/opdavies"; + in + [ + "${repos}/email-filters" + "${repos}/nix-config" + "${repos}/oliverdavies.uk" + "${repos}/opentofu-dns" + ]; + }; +} diff --git a/modules2/zsh/dot-dir.nix b/modules2/zsh/dot-dir.nix index 407f5ed1..5707e785 100644 --- a/modules2/zsh/dot-dir.nix +++ b/modules2/zsh/dot-dir.nix @@ -1,3 +1,5 @@ { - flake.modules.homeManager.base.programs.zsh.dotDir = ".config/zsh"; + flake.modules.homeManager.base = { + programs.zsh.dotDir = ".config/zsh"; + }; } diff --git a/packages/dev-commit.nix b/packages/dev-commit.nix index dfe4336a..23fa8721 100644 --- a/packages/dev-commit.nix +++ b/packages/dev-commit.nix @@ -6,6 +6,7 @@ pkgs.writeShellApplication { runtimeInputs = with pkgs; [ coreutils git + logger openssh ]; @@ -13,14 +14,29 @@ pkgs.writeShellApplication { IFS=':' read -ra repos <<< "$DEV_COMMIT_PATHS" for repo in "''${repos[@]}"; do - echo "Processing $repo" - pushd "$repo" + logger "Processing repository: $repo" - git add . - git commit -m "Automated dev commit" || true - git push + pushd "$repo" > /dev/null 2>&1 - popd + if [[ -n $(git status --porcelain) ]]; then + logger "Changes detected in $repo" + + git status --short | while read -r line; do + logger "Changed file: $line" + done + + git add . + + if git commit -m "Automated dev commit"; then + logger "Commit successful in $repo" + else + logger "No changes to commit in $repo" + fi + else + logger "No changes in $repo" + fi + + popd > /dev/null 2>&1 done ''; }