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 ''; }