Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package chezmoi for openSUSE:Factory checked 
in at 2023-12-18 22:57:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/chezmoi (Old)
 and      /work/SRC/openSUSE:Factory/.chezmoi.new.9037 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "chezmoi"

Mon Dec 18 22:57:24 2023 rev:41 rq:1133901 version:2.42.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/chezmoi/chezmoi.changes  2023-12-06 
23:48:10.879162220 +0100
+++ /work/SRC/openSUSE:Factory/.chezmoi.new.9037/chezmoi.changes        
2023-12-18 22:57:32.831136518 +0100
@@ -1,0 +2,8 @@
+Mon Dec 18 18:03:57 UTC 2023 - Filippo Bonazzi <filippo.bona...@suse.com>
+
+- Update to version 2.42.3:
+  - Features
+    * feat: Remove nested subshell check
+    * feat: Make mackupApplicationsDir func agnostic to mackup's installation 
method
+
+-------------------------------------------------------------------

Old:
----
  chezmoi-2.42.2.obscpio

New:
----
  chezmoi-2.42.3.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ chezmoi.spec ++++++
--- /var/tmp/diff_new_pack.waxzmz/_old  2023-12-18 22:57:35.247225001 +0100
+++ /var/tmp/diff_new_pack.waxzmz/_new  2023-12-18 22:57:35.247225001 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           chezmoi
-Version:        2.42.2
+Version:        2.42.3
 Release:        0
 Summary:        A multi-host manager for dotfiles
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.waxzmz/_old  2023-12-18 22:57:35.275226027 +0100
+++ /var/tmp/diff_new_pack.waxzmz/_new  2023-12-18 22:57:35.279226173 +0100
@@ -2,7 +2,7 @@
   <service name="obs_scm" mode="manual">
     <param name="scm">git</param>
     <param name="url">https://github.com/twpayne/chezmoi.git</param>
-    <param name="revision">v2.42.2</param>
+    <param name="revision">v2.42.3</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
   </service>

++++++ chezmoi-2.42.2.obscpio -> chezmoi-2.42.3.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.42.2/.github/workflows/main.yml 
new/chezmoi-2.42.3/.github/workflows/main.yml
--- old/chezmoi-2.42.2/.github/workflows/main.yml       2023-12-02 
02:29:57.000000000 +0100
+++ new/chezmoi-2.42.3/.github/workflows/main.yml       2023-12-17 
00:08:59.000000000 +0100
@@ -12,7 +12,7 @@
   ACTIONLINT_VERSION: 1.6.26
   AGE_VERSION: 1.1.1
   CHOCOLATEY_VERSION: 2.2.2
-  GO_VERSION: 1.21.4
+  GO_VERSION: 1.21.5
   GOFUMPT_VERSION: 0.5.0
   GOLANGCI_LINT_VERSION: 1.55.2
   GOLINES_VERSION: 0.11.0
@@ -59,7 +59,7 @@
     runs-on: ubuntu-22.04
     steps:
     - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
-    - uses: reviewdog/action-misspell@cc799b020b057600b66eedf2b6e97ca26137de21
+    - uses: reviewdog/action-misspell@4348e72b9038b006ffc37b6b0dd4421a2e9a68ef
       with:
         locale: US
   test-alpine:
@@ -90,7 +90,7 @@
     runs-on: macos-11
     steps:
     - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
-    - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe
+    - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
       with:
         go-version: ${{ env.GO_VERSION }}
     - name: build
@@ -120,7 +120,7 @@
     runs-on: ubuntu-20.04
     steps:
     - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
-    - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe
+    - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
       with:
         go-version: oldstable
     - name: build
@@ -147,7 +147,7 @@
     - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
       with:
         fetch-depth: 0
-    - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe
+    - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
       with:
         go-version: ${{ env.GO_VERSION }}
     - name: install-release-dependencies
@@ -175,31 +175,31 @@
         args: release --skip=sign --snapshot --timeout=1h
     - name: upload-artifact-chezmoi-darwin-amd64
       if: github.event_name == 'push' || needs.changes.outputs.code == 'true'
-      uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32
+      uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392
       with:
         name: chezmoi-darwin-amd64
         path: dist/chezmoi-nocgo_darwin_amd64_v1/chezmoi
     - name: upload-artifact-chezmoi-darwin-arm64
       if: github.event_name == 'push' || needs.changes.outputs.code == 'true'
-      uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32
+      uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392
       with:
         name: chezmoi-darwin-arm64
         path: dist/chezmoi-nocgo_darwin_arm64/chezmoi
     - name: upload-artifact-chezmoi-linux-amd64
       if: github.event_name == 'push' || needs.changes.outputs.code == 'true'
-      uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32
+      uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392
       with:
         name: chezmoi-linux-amd64
         path: dist/chezmoi-cgo-glibc_linux_amd64_v1/chezmoi
     - name: upload-artifact-chezmoi-linux-musl-amd64
       if: github.event_name == 'push' || needs.changes.outputs.code == 'true'
-      uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32
+      uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392
       with:
         name: chezmoi-linux-amd64-musl
         path: dist/chezmoi-cgo-musl_linux_amd64_v1/chezmoi
     - name: upload-artifact-chezmoi-windows-amd64.exe
       if: github.event_name == 'push' || needs.changes.outputs.code == 'true'
-      uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32
+      uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392
       with:
         name: chezmoi-windows-amd64
         path: dist/chezmoi-nocgo_windows_amd64_v1/chezmoi.exe
@@ -210,7 +210,7 @@
     - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
       with:
         fetch-depth: 0
-    - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe
+    - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
       with:
         go-version: ${{ env.GO_VERSION }}
     - name: install-age
@@ -248,7 +248,7 @@
     runs-on: ubuntu-20.04
     steps:
     - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
-    - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe
+    - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
       with:
         go-version: ${{ env.GO_VERSION }}
     - name: install-website-dependencies
@@ -264,7 +264,7 @@
     runs-on: windows-2022
     steps:
     - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
-    - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe
+    - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
       with:
         go-version: ${{ env.GO_VERSION }}
     - uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84
@@ -303,7 +303,9 @@
     runs-on: ubuntu-20.04
     steps:
     - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
-    - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe
+      with:
+        fetch-depth: 0
+    - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
       with:
         go-version: ${{ env.GO_VERSION }}
     - name: generate
@@ -327,13 +329,21 @@
       run: |
         go install "github.com/twpayne/find-typos@v${FIND_TYPOS_VERSION}"
         find-typos -format=github-actions chezmoi .
+    - name: lint-commit-messages
+      if: github.event_name == 'push'
+      run: |
+        go run ./internal/cmds/lint-commit-messages HEAD~1..HEAD
+    - name: lint-commit-messages
+      if: github.event_name == 'pull_request'
+      run: |
+        go run ./internal/cmds/lint-commit-messages ${{ 
github.event.pull_request.head.sha }}~${{ github.event.pull_request.commits 
}}..${{ github.event.pull_request.head.sha }}
   lint:
     needs: changes
     if: github.event_name == 'push' || needs.changes.outputs.code == 'true'
     runs-on: ubuntu-20.04
     steps:
     - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
-    - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe
+    - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
       with:
         go-version: ${{ env.GO_VERSION }}
     - uses: 
golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc
@@ -375,10 +385,10 @@
     - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
       with:
         fetch-depth: 0
-    - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe
+    - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
       with:
         go-version: ${{ env.GO_VERSION }}
-    - uses: sigstore/cosign-installer@1fc5bd396d372bee37d608f955b336615edf79c8
+    - uses: sigstore/cosign-installer@9614fae9e5c5eddabb09f90a270fcb487c9f7149
     - name: create-syso
       run: |
         make create-syso
@@ -401,7 +411,7 @@
     - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
       with:
         fetch-depth: 0
-    - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe
+    - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
       with:
         go-version: ${{ env.GO_VERSION }}
     - name: prepare-chezmoi.io
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.42.2/.golangci.yml 
new/chezmoi-2.42.3/.golangci.yml
--- old/chezmoi-2.42.2/.golangci.yml    2023-12-02 02:29:57.000000000 +0100
+++ new/chezmoi-2.42.3/.golangci.yml    2023-12-17 00:08:59.000000000 +0100
@@ -114,7 +114,7 @@
     - ^compress/gzip\.
     - ^fmt\.Print.*$
     - ^ioutil\..*$
-    - ^os\.(DirEntry|FileInfo|FileMode|Is.*|Mode.*)$
+    - ^os\.(DirEntry|ErrExist|ErrNotExist|FileInfo|FileMode|Is.*|Mode.*)$
   gci:
     sections:
     - standard
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.42.2/Makefile new/chezmoi-2.42.3/Makefile
--- old/chezmoi-2.42.2/Makefile 2023-12-02 02:29:57.000000000 +0100
+++ new/chezmoi-2.42.3/Makefile 2023-12-17 00:08:59.000000000 +0100
@@ -116,6 +116,7 @@
        ${GO} run ./internal/cmds/lint-whitespace
        find . -name \*.txtar | xargs ${GO} run ./internal/cmds/lint-txtar
        ./bin/find-typos chezmoi .
+       go run ./internal/cmds/lint-commit-messages origin/master..HEAD
 
 .PHONY: format
 format: ensure-gofumpt ensure-golines
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.42.2/assets/chezmoi.io/docs/links/articles.md.yaml 
new/chezmoi-2.42.3/assets/chezmoi.io/docs/links/articles.md.yaml
--- old/chezmoi-2.42.2/assets/chezmoi.io/docs/links/articles.md.yaml    
2023-12-02 02:29:57.000000000 +0100
+++ new/chezmoi-2.42.3/assets/chezmoi.io/docs/links/articles.md.yaml    
2023-12-17 00:08:59.000000000 +0100
@@ -352,3 +352,8 @@
   lang: CN
   title: 用 chezmoi 管理 dotfiles
   url: https://thewang.net/blog/manage-dotfiles-with-chezmoi
+- date: '2023-12-10'
+  version: 2.42.2
+  lang: JP
+  title: chezmoi で dotfiles 
を管理するときに便利な機能についてまとめる
+  url: https://zenn.dev/ganariya/articles/useful-features-of-chezmoi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.42.2/assets/chezmoi.io/docs/links/related-software.md 
new/chezmoi-2.42.3/assets/chezmoi.io/docs/links/related-software.md
--- old/chezmoi-2.42.2/assets/chezmoi.io/docs/links/related-software.md 
2023-12-02 02:29:57.000000000 +0100
+++ new/chezmoi-2.42.3/assets/chezmoi.io/docs/links/related-software.md 
2023-12-17 00:08:59.000000000 +0100
@@ -15,6 +15,10 @@
 
 A plugin for VIM to apply the dotfile you are editing on `:w`.
 
+### [`github.com/xvzc/chezmoi.nvim`](https://github.com/xvzc/chezmoi.nvim)
+
+Edit your chezmoi-managed files and automatically apply.
+
 ## Other
 
 ### [`atuin.sh`](https://atuin.sh/)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.42.2/assets/chezmoi.io/docs/links/videos.md.yaml 
new/chezmoi-2.42.3/assets/chezmoi.io/docs/links/videos.md.yaml
--- old/chezmoi-2.42.2/assets/chezmoi.io/docs/links/videos.md.yaml      
2023-12-02 02:29:57.000000000 +0100
+++ new/chezmoi-2.42.3/assets/chezmoi.io/docs/links/videos.md.yaml      
2023-12-17 00:08:59.000000000 +0100
@@ -41,3 +41,7 @@
   lang: ES
   title: Archivos de configuración fácil con chezmoi
   url: https://www.youtube.com/watch?v=Xsh2DGSe6Lg
+- date: '2023-12-03'
+  version: 2.42.2
+  title: The ultimate dotfiles setup
+  url: https://www.youtube.com/watch?v=-RkANM9FfTM
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.42.2/assets/chezmoi.io/docs/reference/templates/github-functions/gitHubKeys.md
 
new/chezmoi-2.42.3/assets/chezmoi.io/docs/reference/templates/github-functions/gitHubKeys.md
--- 
old/chezmoi-2.42.2/assets/chezmoi.io/docs/reference/templates/github-functions/gitHubKeys.md
        2023-12-02 02:29:57.000000000 +0100
+++ 
new/chezmoi-2.42.3/assets/chezmoi.io/docs/reference/templates/github-functions/gitHubKeys.md
        2023-12-17 00:08:59.000000000 +0100
@@ -13,6 +13,14 @@
     by using the `-v` / `--verbose` option when running `chezmoi apply` or
     `chezmoi update`.
 
+    Additionally, GitHub automatically [removes keys which haven't been used in
+    the last
+    
year](https://docs.github.com/en/authentication/troubleshooting-ssh/deleted-or-missing-ssh-keys).
+    This may cause your keys to be removed from `~/.ssh/authorized_keys`
+    suddenly, and without any warning or indication of the removal. You should
+    provide one or more keys in plain text alongside this function to avoid
+    unknowingly losing remote access to your machine.
+
 !!! example
 
     ```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.42.2/assets/chezmoi.io/docs/user-guide/advanced/install-packages-declaratively.md
 
new/chezmoi-2.42.3/assets/chezmoi.io/docs/user-guide/advanced/install-packages-declaratively.md
--- 
old/chezmoi-2.42.2/assets/chezmoi.io/docs/user-guide/advanced/install-packages-declaratively.md
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/chezmoi-2.42.3/assets/chezmoi.io/docs/user-guide/advanced/install-packages-declaratively.md
     2023-12-17 00:08:59.000000000 +0100
@@ -0,0 +1,43 @@
+# Install packages declaratively
+
+chezmoi uses a declarative approach for the contents of dotfiles, but package
+installation requires running imperative commands. However, you can simulate
+declarative package installation with a combination of a `.chezmoidata` file 
and
+a `run_onchange_` script.
+
+The following example uses [homebrew](https://brew.sh) on macOS, but should be
+adaptable to other operating systems and package managers.
+
+First, create `.chezmoidata/packages.yaml` declaring the packages that you want
+installed, for example:
+
+```yaml title="~/.local/share/chezmoi/.chezmoidata/packages.yaml"
+packages:
+  darwin:
+    brews:
+    - 'git'
+    casks:
+    - 'google-chrome'
+```
+
+Second, create a `run_onchange_darwin-install-packages.sh.tmpl` script that 
uses
+the package manager to install those packages, for example:
+
+``` title="~/.local/share/chezmoi/run_onchange_darwin-install-packages.sh.tmpl"
+{{ if eq .chezmoi.os "darwin" -}}
+#!/bin/bash
+
+brew bundle --no-lock --file=/dev/stdin <<EOF
+{{ range .packages.darwin.brews -}}
+brew {{ . | quote }}
+{{ end -}}
+{{ range .packages.darwin.casks -}}
+cask {{ . | quote }}
+{{ end -}}
+EOF
+{{ end -}}
+```
+
+Now, when you run `chezmoi apply`, chezmoi will execute the
+`install-packages.sh` script with when the list of packages defined in
+`.chezmoidata/packages.yaml` changes.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.42.2/assets/chezmoi.io/mkdocs.yml 
new/chezmoi-2.42.3/assets/chezmoi.io/mkdocs.yml
--- old/chezmoi-2.42.2/assets/chezmoi.io/mkdocs.yml     2023-12-02 
02:29:57.000000000 +0100
+++ new/chezmoi-2.42.3/assets/chezmoi.io/mkdocs.yml     2023-12-17 
00:08:59.000000000 +0100
@@ -88,6 +88,7 @@
     - Containers and VMs: user-guide/machines/containers-and-vms.md
   - Advanced:
     - Customize your source directory: 
user-guide/advanced/customize-your-source-directory.md
+    - Install packages declaratively: 
user-guide/advanced/install-packages-declaratively.md
     - Install your password manager on init: 
user-guide/advanced/install-your-password-manager-on-init.md
     - Use chezmoi with Watchman: 
user-guide/advanced/use-chezmoi-with-watchman.md
     - Migrate away from chezmoi: 
user-guide/advanced/migrate-away-from-chezmoi.md
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.42.2/go.mod new/chezmoi-2.42.3/go.mod
--- old/chezmoi-2.42.2/go.mod   2023-12-02 02:29:57.000000000 +0100
+++ new/chezmoi-2.42.3/go.mod   2023-12-17 00:08:59.000000000 +0100
@@ -8,18 +8,18 @@
        github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.0.1
        github.com/Masterminds/sprig/v3 v3.2.3
        github.com/Shopify/ejson v1.4.1
-       github.com/alecthomas/assert/v2 v2.4.0
-       github.com/aws/aws-sdk-go-v2 v1.23.5
-       github.com/aws/aws-sdk-go-v2/config v1.25.11
-       github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.2
+       github.com/alecthomas/assert/v2 v2.4.1
+       github.com/aws/aws-sdk-go-v2 v1.24.0
+       github.com/aws/aws-sdk-go-v2/config v1.26.1
+       github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.5
        github.com/bmatcuk/doublestar/v4 v4.6.1
        github.com/bradenhilton/mozillainstallhash v1.0.1
-       github.com/charmbracelet/bubbles v0.16.1
-       github.com/charmbracelet/bubbletea v0.24.2
+       github.com/charmbracelet/bubbles v0.17.1
+       github.com/charmbracelet/bubbletea v0.25.0
        github.com/charmbracelet/glamour v0.6.0
        github.com/coreos/go-semver v0.3.1
        github.com/fsnotify/fsnotify v1.7.0
-       github.com/go-git/go-git/v5 v5.10.1
+       github.com/go-git/go-git/v5 v5.11.0
        github.com/google/go-github/v57 v57.0.0
        github.com/google/renameio/v2 v2.0.0
        github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79
@@ -29,8 +29,8 @@
        github.com/mitchellh/mapstructure v1.5.0
        github.com/muesli/combinator v0.3.0
        github.com/muesli/termenv v0.15.2
-       github.com/pelletier/go-toml/v2 v2.1.0
-       github.com/rogpeppe/go-internal v1.11.0
+       github.com/pelletier/go-toml/v2 v2.1.1
+       github.com/rogpeppe/go-internal v1.12.0
        github.com/rs/zerolog v1.31.0
        github.com/sergi/go-diff v1.1.0
        github.com/spf13/cobra v1.8.0
@@ -45,7 +45,7 @@
        github.com/zalando/go-keyring v0.2.3
        go.etcd.io/bbolt v1.3.8
        golang.org/x/crypto v0.16.0
-       golang.org/x/exp v0.0.0-20231127185646-65229373498e
+       golang.org/x/exp v0.0.0-20231214170342-aacd6d4b4611
        golang.org/x/oauth2 v0.15.0
        golang.org/x/sync v0.5.0
        golang.org/x/sys v0.15.0
@@ -58,8 +58,8 @@
 
 require (
        dario.cat/mergo v1.0.0 // indirect
-       github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.0 // indirect
-       github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0 // indirect
+       github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 // indirect
+       github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 // indirect
        github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0 
// indirect
        github.com/AzureAD/microsoft-authentication-library-for-go v1.2.0 // 
indirect
        github.com/Masterminds/goutils v1.1.1 // indirect
@@ -70,17 +70,17 @@
        github.com/alecthomas/repr v0.3.0 // indirect
        github.com/alessio/shellescape v1.4.2 // indirect
        github.com/atotto/clipboard v0.1.4 // indirect
-       github.com/aws/aws-sdk-go-v2/credentials v1.16.9 // indirect
-       github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.9 // indirect
-       github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.8 // indirect
-       github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.8 // indirect
-       github.com/aws/aws-sdk-go-v2/internal/ini v1.7.1 // indirect
-       github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.3 
// indirect
-       github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.8 // 
indirect
-       github.com/aws/aws-sdk-go-v2/service/sso v1.18.2 // indirect
-       github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.2 // indirect
-       github.com/aws/aws-sdk-go-v2/service/sts v1.26.2 // indirect
-       github.com/aws/smithy-go v1.18.1 // indirect
+       github.com/aws/aws-sdk-go-v2/credentials v1.16.12 // indirect
+       github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 // indirect
+       github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9 // indirect
+       github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9 // indirect
+       github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 // indirect
+       github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 
// indirect
+       github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9 // 
indirect
+       github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 // indirect
+       github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5 // indirect
+       github.com/aws/aws-sdk-go-v2/service/sts v1.26.5 // indirect
+       github.com/aws/smithy-go v1.19.0 // indirect
        github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
        github.com/aymerick/douceur v0.2.0 // indirect
        github.com/bradenhilton/cityhash v1.0.0 // indirect
@@ -89,7 +89,7 @@
        github.com/cloudflare/circl v1.3.6 // indirect
        github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // 
indirect
        github.com/cyphar/filepath-securejoin v0.2.4 // indirect
-       github.com/danieljoos/wincred v1.2.0 // indirect
+       github.com/danieljoos/wincred v1.2.1 // indirect
        github.com/dlclark/regexp2 v1.10.0 // indirect
        github.com/dustin/gojson v0.0.0-20160307161227-2e71ec9dd5ad // indirect
        github.com/emirpasic/gods v1.18.1 // indirect
@@ -101,7 +101,7 @@
        github.com/golang/protobuf v1.5.3 // indirect
        github.com/google/btree v1.1.2 // indirect
        github.com/google/go-querystring v1.1.0 // indirect
-       github.com/google/uuid v1.4.0 // indirect
+       github.com/google/uuid v1.5.0 // indirect
        github.com/gorilla/css v1.0.1 // indirect
        github.com/hexops/gotextdiff v1.0.3 // indirect
        github.com/huandu/xstrings v1.4.0 // indirect
@@ -136,7 +136,7 @@
        golang.org/x/mod v0.14.0 // indirect
        golang.org/x/net v0.19.0 // indirect
        golang.org/x/text v0.14.0 // indirect
-       golang.org/x/tools v0.16.0 // indirect
+       golang.org/x/tools v0.16.1 // indirect
        google.golang.org/appengine v1.6.8 // indirect
        google.golang.org/protobuf v1.31.0 // indirect
        gopkg.in/warnings.v0 v0.1.2 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.42.2/go.sum new/chezmoi-2.42.3/go.sum
--- old/chezmoi-2.42.2/go.sum   2023-12-02 02:29:57.000000000 +0100
+++ new/chezmoi-2.42.3/go.sum   2023-12-17 00:08:59.000000000 +0100
@@ -8,12 +8,12 @@
 filippo.io/age v1.1.1/go.mod h1:l03SrzDUrBkdBx8+IILdnn2KZysqQdbEBUQ4p3sqEQE=
 filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek=
 filippo.io/edwards25519 v1.0.0/go.mod 
h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns=
-github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.0 
h1:fb8kj/Dh4CSwgsOzHeZY4Xh68cFVbzXx+ONXGMY//4w=
-github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.0/go.mod 
h1:uReU2sSxZExRPBAg3qKzmAucSi51+SP1OhohieR821Q=
+github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 
h1:lGlwhPtrX6EVml1hO0ivjkUxsSyl4dsiw9qcA1k/3IQ=
+github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1/go.mod 
h1:RKUqNu35KJYcVG/fqTRqmuXJZYNhYkBrnC/hX7yGbTA=
 github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 
h1:BMAjVKJM0U/CYF27gA0ZMmXGkOcvfFtD0oHVZ1TIPRI=
 github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0/go.mod 
h1:1fXstnBMas5kzG+S3q8UoJcmyU6nUeunJcMDHcRYHhs=
-github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0 
h1:d81/ng9rET2YqdVkVwkb6EXeRrLJIwyGnJcAlAWKwhs=
-github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0/go.mod 
h1:s4kgfzA0covAXNicZHDMN58jExvcng2mC/DepXiF1EI=
+github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 
h1:6oNBlSdi1QqM1PNW7FPA6xOGA5UNsXnkaYZz9vdPGhA=
+github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1/go.mod 
h1:s4kgfzA0covAXNicZHDMN58jExvcng2mC/DepXiF1EI=
 github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.0.1 
h1:8TkzQBrN9PWIwo7ekdd696KpC6IfTltV2/F8qKKBWik=
 github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets 
v1.0.1/go.mod h1:aprFpXPQiTyG5Rkz6Ot5pvU6y6YKg/AKYOcLCoxN0bk=
 github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0 
h1:D3occbWoio4EBLkbkevetNMAVX197GkzbUMtqjGWn80=
@@ -34,8 +34,8 @@
 github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c/go.mod 
h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
 github.com/Shopify/ejson v1.4.1 h1:zGGojGJNTdIWza/kOT8gd2HKCg3ZkSi3CZ1ZX70NHsw=
 github.com/Shopify/ejson v1.4.1/go.mod 
h1:VZMUtDzvBW/PAXRUF5fzp1ffb1ucT8MztrZXXLYZurw=
-github.com/alecthomas/assert/v2 v2.4.0 
h1:/ZiZ0NnriAWPYYO+4eOjgzNELrFQLaHNr92mHSHFj9U=
-github.com/alecthomas/assert/v2 v2.4.0/go.mod 
h1:fw5suVxB+wfYJ3291t0hRTqtGzFYdSwstnRQdaQx2DM=
+github.com/alecthomas/assert/v2 v2.4.1 
h1:mwPZod/d35nlaCppr6sFP0rbCL05WH9fIo7lvsf47zo=
+github.com/alecthomas/assert/v2 v2.4.1/go.mod 
h1:fw5suVxB+wfYJ3291t0hRTqtGzFYdSwstnRQdaQx2DM=
 github.com/alecthomas/chroma v0.10.0 
h1:7XDcGkCQopCNKjZHfYrNLraA+M7e0fMiJ/Mfikbfjek=
 github.com/alecthomas/chroma v0.10.0/go.mod 
h1:jtJATyUxlIORhUOFNA9NZDWGAQ8wpxQQqNSB4rjA/1s=
 github.com/alecthomas/repr v0.3.0 
h1:NeYzUPfjjlqHY4KtzgKJiWd6sVq2eNUPTi34PiFGjY8=
@@ -48,34 +48,34 @@
 github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod 
h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
 github.com/atotto/clipboard v0.1.4 
h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4=
 github.com/atotto/clipboard v0.1.4/go.mod 
h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI=
-github.com/aws/aws-sdk-go-v2 v1.23.5 
h1:xK6C4udTyDMd82RFvNkDQxtAd00xlzFUtX4fF2nMZyg=
-github.com/aws/aws-sdk-go-v2 v1.23.5/go.mod 
h1:t3szzKfP0NeRU27uBFczDivYJjsmSnqI8kIvKyWb9ds=
-github.com/aws/aws-sdk-go-v2/config v1.25.11 
h1:RWzp7jhPRliIcACefGkKp03L0Yofmd2p8M25kbiyvno=
-github.com/aws/aws-sdk-go-v2/config v1.25.11/go.mod 
h1:BVUs0chMdygHsQtvaMyEOpW2GIW+ubrxJLgIz/JU29s=
-github.com/aws/aws-sdk-go-v2/credentials v1.16.9 
h1:LQo3MUIOzod9JdUK+wxmSdgzLVYUbII3jXn3S/HJZU0=
-github.com/aws/aws-sdk-go-v2/credentials v1.16.9/go.mod 
h1:R7mDuIJoCjH6TxGUc/cylE7Lp/o0bhKVoxdBThsjqCM=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.9 
h1:FZVFahMyZle6WcogZCOxo6D/lkDA2lqKIn4/ueUmVXw=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.9/go.mod 
h1:kjq7REMIkxdtcEC9/4BVXjOsNY5isz6jQbEgk6osRTU=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.8 
h1:8GVZIR0y6JRIUNSYI1xAMF4HDfV8H/bOsZ/8AD/uY5Q=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.8/go.mod 
h1:rwBfu0SoUkBUZndVgPZKAD9Y2JigaZtRP68unRiYToQ=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.8 
h1:ZE2ds/qeBkhk3yqYvS3CDCFNvd9ir5hMjlVStLZWrvM=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.8/go.mod 
h1:/lAPPymDYL023+TS6DJmjuL42nxix2AvEvfjqOBRODk=
-github.com/aws/aws-sdk-go-v2/internal/ini v1.7.1 
h1:uR9lXYjdPX0xY+NhvaJ4dD8rpSRz5VY81ccIIoNG+lw=
-github.com/aws/aws-sdk-go-v2/internal/ini v1.7.1/go.mod 
h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.3 
h1:e3PCNeEaev/ZF01cQyNZgmYE9oYYePIMJs2mWSKG514=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.3/go.mod 
h1:gIeeNyaL8tIEqZrzAnTeyhHcE0yysCtcaP+N9kxLZ+E=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.8 
h1:EamsKe+ZjkOQjDdHd86/JCEucjFKQ9T0atWKO4s2Lgs=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.8/go.mod 
h1:Q0vV3/csTpbkfKLI5Sb56cJQTCTtJ0ixdb7P+Wedqiw=
-github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.2 
h1:JKbfiLwEqJp8zaOAOn6AVSMS96gdwP3TjBMvZYsbxqE=
-github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.2/go.mod 
h1:pbBOMK8UicdDK11zsPSGbpFh9Xwbd1oD3t7pSxXgNxU=
-github.com/aws/aws-sdk-go-v2/service/sso v1.18.2 
h1:xJPydhNm0Hiqct5TVKEuHG7weC0+sOs4MUnd7A5n5F4=
-github.com/aws/aws-sdk-go-v2/service/sso v1.18.2/go.mod 
h1:zxk6y1X2KXThESWMS5CrKRvISD8mbIMab6nZrCGxDG0=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.2 
h1:8dU9zqA77C5egbU6yd4hFLaiIdPv3rU+6cp7sz5FjCU=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.2/go.mod 
h1:7Lt5mjQ8x5rVdKqg+sKKDeuwoszDJIIPmkd8BVsEdS0=
-github.com/aws/aws-sdk-go-v2/service/sts v1.26.2 
h1:fFrLsy08wEbAisqW3KDl/cPHrF43GmV79zXB9EwJiZw=
-github.com/aws/aws-sdk-go-v2/service/sts v1.26.2/go.mod 
h1:7Ld9eTqocTvJqqJ5K/orbSDwmGcpRdlDiLjz2DO+SL8=
-github.com/aws/smithy-go v1.18.1 
h1:pOdBTUfXNazOlxLrgeYalVnuTpKreACHtc62xLwIB3c=
-github.com/aws/smithy-go v1.18.1/go.mod 
h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE=
+github.com/aws/aws-sdk-go-v2 v1.24.0 
h1:890+mqQ+hTpNuw0gGP6/4akolQkSToDJgHfQE7AwGuk=
+github.com/aws/aws-sdk-go-v2 v1.24.0/go.mod 
h1:LNh45Br1YAkEKaAqvmE1m8FUx6a5b/V0oAKV7of29b4=
+github.com/aws/aws-sdk-go-v2/config v1.26.1 
h1:z6DqMxclFGL3Zfo+4Q0rLnAZ6yVkzCRxhRMsiRQnD1o=
+github.com/aws/aws-sdk-go-v2/config v1.26.1/go.mod 
h1:ZB+CuKHRbb5v5F0oJtGdhFTelmrxd4iWO1lf0rQwSAg=
+github.com/aws/aws-sdk-go-v2/credentials v1.16.12 
h1:v/WgB8NxprNvr5inKIiVVrXPuuTegM+K8nncFkr1usU=
+github.com/aws/aws-sdk-go-v2/credentials v1.16.12/go.mod 
h1:X21k0FjEJe+/pauud82HYiQbEr9jRKY3kXEIQ4hXeTQ=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 
h1:w98BT5w+ao1/r5sUuiH6JkVzjowOKeOJRHERyy1vh58=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10/go.mod 
h1:K2WGI7vUvkIv1HoNbfBA1bvIZ+9kL3YVmWxeKuLQsiw=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9 
h1:v+HbZaCGmOwnTTVS86Fleq0vPzOd7tnJGbFhP0stNLs=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9/go.mod 
h1:Xjqy+Nyj7VDLBtCMkQYOw1QYfAEZCVLrfI0ezve8wd4=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9 
h1:N94sVhRACtXyVcjXxrwK1SKFIJrA9pOJ5yu2eSHnmls=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9/go.mod 
h1:hqamLz7g1/4EJP+GH5NBhcUMLjW+gKLQabgyz6/7WAU=
+github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 
h1:GrSw8s0Gs/5zZ0SX+gX4zQjRnRsMJDJ2sLur1gRBhEM=
+github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2/go.mod 
h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 
h1:/b31bi3YVNlkzkBrm9LfpaKoaYZUxIAj4sHfOTmLfqw=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4/go.mod 
h1:2aGXHFmbInwgP9ZfpmdIfOELL79zhdNYNmReK8qDfdQ=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9 
h1:Nf2sHxjMJR8CSImIVCONRi4g0Su3J+TSTbS7G0pUeMU=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9/go.mod 
h1:idky4TER38YIjr2cADF1/ugFMKvZV7p//pVeV5LZbF0=
+github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.5 
h1:qYi/BfDrWXZxlmRjlKCyFmtI4HKJwW8OKDKhKRAOZQI=
+github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.5/go.mod 
h1:4Ae1NCLK6ghmjzd45Tc33GgCKhUWD2ORAlULtMO1Cbs=
+github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 
h1:ldSFWz9tEHAwHNmjx2Cvy1MjP5/L9kNoR0skc6wyOOM=
+github.com/aws/aws-sdk-go-v2/service/sso v1.18.5/go.mod 
h1:CaFfXLYL376jgbP7VKC96uFcU8Rlavak0UlAwk1Dlhc=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5 
h1:2k9KmFawS63euAkY4/ixVNsYYwrwnd5fIvgEKkfZFNM=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5/go.mod 
h1:W+nd4wWDVkSUIox9bacmkBP5NMFQeTJ/xqNabpzSR38=
+github.com/aws/aws-sdk-go-v2/service/sts v1.26.5 
h1:5UYvv8JUvllZsRnfrcMQ+hJ9jNICmcgKPAO1CER25Wg=
+github.com/aws/aws-sdk-go-v2/service/sts v1.26.5/go.mod 
h1:XX5gh4CB7wAs4KhcF46G6C8a2i7eupU19dcAAE+EydU=
+github.com/aws/smithy-go v1.19.0 
h1:KWFKQV80DpP3vJrrA9sVAHQ5gc2z8i4EzrLhLlWXcBM=
+github.com/aws/smithy-go v1.19.0/go.mod 
h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE=
 github.com/aymanbagabas/go-osc52 v1.0.3 
h1:DTwqENW7X9arYimJrPeGZcV0ln14sGMt3pHZspWD+Mg=
 github.com/aymanbagabas/go-osc52 v1.0.3/go.mod 
h1:zT8H+Rk4VSabYN90pWyugflM3ZhpTZNC7cASDfUCdT4=
 github.com/aymanbagabas/go-osc52/v2 v2.0.1 
h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
@@ -90,10 +90,10 @@
 github.com/bradenhilton/mozillainstallhash v1.0.1/go.mod 
h1:J6cA36kUZrgaTkDl2bHRqI+4i2UKO1ImDB1P1x1PyOA=
 github.com/bwesterb/go-ristretto v1.2.3 
h1:1w53tCkGhCQ5djbat3+MH0BAQ5Kfgbt56UZQ/JMzngw=
 github.com/bwesterb/go-ristretto v1.2.3/go.mod 
h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
-github.com/charmbracelet/bubbles v0.16.1 
h1:6uzpAAaT9ZqKssntbvZMlksWHruQLNxg49H5WdeuYSY=
-github.com/charmbracelet/bubbles v0.16.1/go.mod 
h1:2QCp9LFlEsBQMvIYERr7Ww2H2bA7xen1idUDIzm/+Xc=
-github.com/charmbracelet/bubbletea v0.24.2 
h1:uaQIKx9Ai6Gdh5zpTbGiWpytMU+CfsPp06RaW2cx/SY=
-github.com/charmbracelet/bubbletea v0.24.2/go.mod 
h1:XdrNrV4J8GiyshTtx3DNuYkR1FDaJmO3l2nejekbsgg=
+github.com/charmbracelet/bubbles v0.17.1 
h1:0SIyjOnkrsfDo88YvPgAWvZMwXe26TP6drRvmkjyUu4=
+github.com/charmbracelet/bubbles v0.17.1/go.mod 
h1:9HxZWlkCqz2PRwsCbYl7a3KXvGzFaDHpYbSYMJ+nE3o=
+github.com/charmbracelet/bubbletea v0.25.0 
h1:bAfwk7jRz7FKFl9RzlIULPkStffg5k6pNt5dywy4TcM=
+github.com/charmbracelet/bubbletea v0.25.0/go.mod 
h1:EN3QDR1T5ZdWmdfDzYcqOCAps45+QIJbLOBxmVNWNNg=
 github.com/charmbracelet/glamour v0.6.0 
h1:wi8fse3Y7nfcabbbDuwolqTqMQPMnVPeZhDM273bISc=
 github.com/charmbracelet/glamour v0.6.0/go.mod 
h1:taqWV4swIMMbWALc0m7AfE9JkPSU8om2538k9ITBxOc=
 github.com/charmbracelet/harmonica v0.2.0 
h1:8NxJWRWg/bzKqqEaaeFNipOu77YR5t8aSwG4pgaUBiQ=
@@ -115,8 +115,8 @@
 github.com/creack/pty v1.1.18/go.mod 
h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
 github.com/cyphar/filepath-securejoin v0.2.4 
h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
 github.com/cyphar/filepath-securejoin v0.2.4/go.mod 
h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
-github.com/danieljoos/wincred v1.2.0 
h1:ozqKHaLK0W/ii4KVbbvluM91W2H3Sh0BncbUNPS7jLE=
-github.com/danieljoos/wincred v1.2.0/go.mod 
h1:FzQLLMKBFdvu+osBrnFODiv32YGwCfx0SkRa/eYHgec=
+github.com/danieljoos/wincred v1.2.1 
h1:dl9cBrupW8+r5250DYkYxocLeZ1Y4vB1kxgtjxw8GQs=
+github.com/danieljoos/wincred v1.2.1/go.mod 
h1:uGaFL9fDn3OLTvzCGulzE+SzjEe5NGlh5FdCcyfPwps=
 github.com/davecgh/go-spew v1.1.0/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 
h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -145,8 +145,8 @@
 github.com/go-git/go-billy/v5 v5.5.0/go.mod 
h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow=
 github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 
h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4=
 github.com/go-git/go-git-fixtures/v4 
v4.3.2-0.20231010084843-55a94097c399/go.mod 
h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII=
-github.com/go-git/go-git/v5 v5.10.1 
h1:tu8/D8i+TWxgKpzQ3Vc43e+kkhXqtsZCKI/egajKnxk=
-github.com/go-git/go-git/v5 v5.10.1/go.mod 
h1:uEuHjxkHap8kAl//V5F/nNWwqIYtP/402ddd05mp0wg=
+github.com/go-git/go-git/v5 v5.11.0 
h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4=
+github.com/go-git/go-git/v5 v5.11.0/go.mod 
h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY=
 github.com/godbus/dbus/v5 v5.0.4/go.mod 
h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
 github.com/godbus/dbus/v5 v5.1.0 
h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
 github.com/godbus/dbus/v5 v5.1.0/go.mod 
h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
@@ -173,8 +173,8 @@
 github.com/google/renameio/v2 v2.0.0 
h1:UifI23ZTGY8Tt29JbYFiuyIU3eX+RNFtUwefq9qAhxg=
 github.com/google/renameio/v2 v2.0.0/go.mod 
h1:BtmJXm5YlszgC+TD4HOEEUFgkJP3nLxehU6hfe7jRt4=
 github.com/google/uuid v1.1.1/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
-github.com/google/uuid v1.4.0/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU=
+github.com/google/uuid v1.5.0/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00 
h1:l5lAOZEym3oK3SQ2HBHWsJUfbNBiTXJDeW2QDxw9AQ0=
 github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00/go.mod 
h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
 github.com/gorilla/css v1.0.0/go.mod 
h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c=
@@ -263,8 +263,8 @@
 github.com/olekukonko/tablewriter v0.0.5/go.mod 
h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
 github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI=
 github.com/onsi/gomega v1.27.10/go.mod 
h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M=
-github.com/pelletier/go-toml/v2 v2.1.0 
h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4=
-github.com/pelletier/go-toml/v2 v2.1.0/go.mod 
h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
+github.com/pelletier/go-toml/v2 v2.1.1 
h1:LWAJwfNvjQZCFIDKWYQaM62NcYeYViCmWIwmOStowAI=
+github.com/pelletier/go-toml/v2 v2.1.1/go.mod 
h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
 github.com/peterbourgon/diskv v2.0.1+incompatible 
h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
 github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod 
h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
 github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4=
@@ -281,16 +281,16 @@
 github.com/rivo/uniseg v0.2.0/go.mod 
h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
 github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
 github.com/rivo/uniseg v0.4.4/go.mod 
h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
-github.com/rogpeppe/go-internal v1.11.0 
h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
-github.com/rogpeppe/go-internal v1.11.0/go.mod 
h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
+github.com/rogpeppe/go-internal v1.12.0 
h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
+github.com/rogpeppe/go-internal v1.12.0/go.mod 
h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
 github.com/rs/xid v1.5.0 h1:mKX4bl4iPYJtEIxp6CYiUuLQ/8DYMoz0PUdtGgMFRVc=
 github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
 github.com/rs/zerolog v1.31.0 h1:FcTR3NnLWW+NnTwwhFWiJSZr4ECLpqCm6QsEnyvbV4A=
 github.com/rs/zerolog v1.31.0/go.mod 
h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss=
 github.com/russross/blackfriday/v2 v2.1.0 
h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
 github.com/russross/blackfriday/v2 v2.1.0/go.mod 
h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/sahilm/fuzzy v0.1.0 h1:FzWGaw2Opqyu+794ZQ9SYifWv2EIXpwP4q8dY1kDAwI=
-github.com/sahilm/fuzzy v0.1.0/go.mod 
h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y=
+github.com/sahilm/fuzzy v0.1.1-0.20230530133925-c48e322e2a8f 
h1:MvTmaQdww/z0Q4wrYjDSCcZ78NoftLQyHBSLW/Cx79Y=
+github.com/sahilm/fuzzy v0.1.1-0.20230530133925-c48e322e2a8f/go.mod 
h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y=
 github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
 github.com/sergi/go-diff v1.1.0/go.mod 
h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
 github.com/shopspring/decimal v1.2.0/go.mod 
h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
@@ -367,8 +367,8 @@
 golang.org/x/crypto v0.7.0/go.mod 
h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
 golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
 golang.org/x/crypto v0.16.0/go.mod 
h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
-golang.org/x/exp v0.0.0-20231127185646-65229373498e 
h1:Gvh4YaCaXNs6dKTlfgismwWZKyjVZXwOPfIyUaqU3No=
-golang.org/x/exp v0.0.0-20231127185646-65229373498e/go.mod 
h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI=
+golang.org/x/exp v0.0.0-20231214170342-aacd6d4b4611 
h1:qCEDpW1G+vcj3Y7Fy52pEM1AWm3abj8WimGYejI3SC4=
+golang.org/x/exp v0.0.0-20231214170342-aacd6d4b4611/go.mod 
h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI=
 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod 
h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
 golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
 golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0=
@@ -431,8 +431,8 @@
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod 
h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.1.12/go.mod 
h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
 golang.org/x/tools v0.6.0/go.mod 
h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
-golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM=
-golang.org/x/tools v0.16.0/go.mod 
h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0=
+golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA=
+golang.org/x/tools v0.16.1/go.mod 
h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 
h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.42.2/internal/chezmoi/externaldiffsystem.go 
new/chezmoi-2.42.3/internal/chezmoi/externaldiffsystem.go
--- old/chezmoi-2.42.2/internal/chezmoi/externaldiffsystem.go   2023-12-02 
02:29:57.000000000 +0100
+++ new/chezmoi-2.42.3/internal/chezmoi/externaldiffsystem.go   2023-12-17 
00:08:59.000000000 +0100
@@ -338,8 +338,8 @@
 
        // Swallow exit status 1 errors if the files differ as diff commands
        // traditionally exit with code 1 in this case.
-       var exitError *exec.ExitError
-       if errors.As(err, &exitError) && exitError.ProcessState.ExitCode() == 1 
{
+       if exitError := (&exec.ExitError{}); errors.As(err, &exitError) &&
+               exitError.ProcessState.ExitCode() == 1 {
                destData, err2 := s.ReadFile(destAbsPath)
                switch {
                case errors.Is(err2, fs.ErrNotExist):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.42.2/internal/chezmoierrors/chezmoierrors.go 
new/chezmoi-2.42.3/internal/chezmoierrors/chezmoierrors.go
--- old/chezmoi-2.42.2/internal/chezmoierrors/chezmoierrors.go  2023-12-02 
02:29:57.000000000 +0100
+++ new/chezmoi-2.42.3/internal/chezmoierrors/chezmoierrors.go  2023-12-17 
00:08:59.000000000 +0100
@@ -25,12 +25,6 @@
        }
 }
 
-// CombineClose combines the error pointed to by errp with the result of 
calling
-// closer.Close().
-func CombineClose(errp *error, closer interface{ Close() error }) {
-       CombineFunc(errp, closer.Close)
-}
-
 // CombineFunc combines the error pointed to by errp with the result of calling
 // f.
 func CombineFunc(errp *error, f func() error) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.42.2/internal/chezmoilog/chezmoilog.go 
new/chezmoi-2.42.3/internal/chezmoilog/chezmoilog.go
--- old/chezmoi-2.42.2/internal/chezmoilog/chezmoilog.go        2023-12-02 
02:29:57.000000000 +0100
+++ new/chezmoi-2.42.3/internal/chezmoilog/chezmoilog.go        2023-12-17 
00:08:59.000000000 +0100
@@ -60,13 +60,12 @@
        if err.Err == nil {
                return
        }
-       var osExecExitError *exec.ExitError
-       if !errors.As(err.Err, &osExecExitError) {
-               return
-       }
-       event.EmbedObject(OSProcessStateLogObject{osExecExitError.ProcessState})
-       if osExecExitError.Stderr != nil {
-               event.Bytes("stderr", osExecExitError.Stderr)
+       if osExecExitError := (&exec.ExitError{}); errors.As(err.Err, 
&osExecExitError) {
+               
event.EmbedObject(OSProcessStateLogObject{osExecExitError.ProcessState})
+               if osExecExitError.Stderr != nil {
+                       event.Bytes("stderr", osExecExitError.Stderr)
+                       return
+               }
        }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.42.2/internal/cmd/cdcmd.go 
new/chezmoi-2.42.3/internal/cmd/cdcmd.go
--- old/chezmoi-2.42.2/internal/cmd/cdcmd.go    2023-12-02 02:29:57.000000000 
+0100
+++ new/chezmoi-2.42.3/internal/cmd/cdcmd.go    2023-12-17 00:08:59.000000000 
+0100
@@ -1,7 +1,6 @@
 package cmd
 
 import (
-       "errors"
        "fmt"
        "os"
 
@@ -36,9 +35,6 @@
 }
 
 func (c *Config) runCDCmd(cmd *cobra.Command, args []string) error {
-       if _, ok := os.LookupEnv("CHEZMOI_SUBSHELL"); ok {
-               return errors.New("already in a chezmoi subshell")
-       }
        os.Setenv("CHEZMOI_SUBSHELL", "1")
 
        cdCommand, cdArgs, err := c.cdCommand()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.42.2/internal/cmd/cmd.go 
new/chezmoi-2.42.3/internal/cmd/cmd.go
--- old/chezmoi-2.42.2/internal/cmd/cmd.go      2023-12-02 02:29:57.000000000 
+0100
+++ new/chezmoi-2.42.3/internal/cmd/cmd.go      2023-12-17 00:08:59.000000000 
+0100
@@ -120,8 +120,7 @@
                }
        }
        if err != nil {
-               var errExitCode chezmoi.ExitCodeError
-               if errors.As(err, &errExitCode) {
+               if errExitCode := chezmoi.ExitCodeError(0); errors.As(err, 
&errExitCode) {
                        return int(errExitCode)
                }
                fmt.Fprintf(os.Stderr, "chezmoi: %s\n", deDuplicateError(err))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.42.2/internal/cmd/config.go 
new/chezmoi-2.42.3/internal/cmd/config.go
--- old/chezmoi-2.42.2/internal/cmd/config.go   2023-12-02 02:29:57.000000000 
+0100
+++ new/chezmoi-2.42.3/internal/cmd/config.go   2023-12-17 00:08:59.000000000 
+0100
@@ -2523,8 +2523,7 @@
 
 func (c *Config) targetRelPath(absPath chezmoi.AbsPath) (chezmoi.RelPath, 
error) {
        relPath, err := absPath.TrimDirPrefix(c.DestDirAbsPath)
-       var notInAbsDirError *chezmoi.NotInAbsDirError
-       if errors.As(err, &notInAbsDirError) {
+       if notInAbsDirError := (&chezmoi.NotInAbsDirError{}); errors.As(err, 
&notInAbsDirError) {
                return chezmoi.EmptyRelPath, fmt.Errorf(
                        "%s: not in destination directory (%s)",
                        absPath,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.42.2/internal/cmd/mackupcmd_darwin.go 
new/chezmoi-2.42.3/internal/cmd/mackupcmd_darwin.go
--- old/chezmoi-2.42.2/internal/cmd/mackupcmd_darwin.go 2023-12-02 
02:29:57.000000000 +0100
+++ new/chezmoi-2.42.3/internal/cmd/mackupcmd_darwin.go 2023-12-17 
00:08:59.000000000 +0100
@@ -7,8 +7,8 @@
        "bytes"
        "errors"
        "fmt"
-       "os"
-       "os/exec"
+       "io/fs"
+       "path/filepath"
        "regexp"
        "strings"
 
@@ -21,7 +21,6 @@
        mackupCommentRx  = regexp.MustCompile(`\A#.*\z`)
        mackupKeyValueRx = regexp.MustCompile(`\A(\w+)\s*=\s*(.*)\z`)
        mackupSectionRx  = regexp.MustCompile(`\A\[(.*)\]\z`)
-       mackupVersionRx  = regexp.MustCompile(`\AMackup\s+(\d+\.\d+\.\d+)\s*\z`)
 )
 
 type mackupApplicationApplicationConfig struct {
@@ -77,7 +76,7 @@
        for _, arg := range args {
                configRelPath := chezmoi.NewRelPath(arg + ".cfg")
                data, err := 
c.baseSystem.ReadFile(mackupDirAbsPath.Join(configRelPath))
-               if errors.Is(err, os.ErrNotExist) {
+               if errors.Is(err, fs.ErrNotExist) {
                        data, err = 
c.baseSystem.ReadFile(mackupApplicationsDir.Join(configRelPath))
                }
                if err != nil {
@@ -122,49 +121,42 @@
 }
 
 func (c *Config) mackupApplicationsDir() (chezmoi.AbsPath, error) {
-       brewPrefixCmd := exec.Command("brew", "--prefix")
-       brewPrefixData, err := brewPrefixCmd.Output()
+       mackupBinaryPath, err := chezmoi.LookPath("mackup")
        if err != nil {
                return chezmoi.EmptyAbsPath, err
        }
-       brewPrefix := 
chezmoi.NewAbsPath(strings.TrimRight(string(brewPrefixData), "\n"))
-
-       mackupVersionCmd := exec.Command("mackup", "--version")
-       mackupVersionData, err := mackupVersionCmd.Output()
+       mackupBinaryPathResolved, err := filepath.EvalSymlinks(mackupBinaryPath)
        if err != nil {
                return chezmoi.EmptyAbsPath, err
        }
-       mackupVersionMatch := mackupVersionRx.FindSubmatch(mackupVersionData)
-       if mackupVersionMatch == nil {
-               return chezmoi.EmptyAbsPath, fmt.Errorf(
-                       "%q: cannot determine Mackup version",
-                       mackupVersionData,
-               )
-       }
-       mackupVersion := string(mackupVersionMatch[1])
+       mackupBinaryAbsPath := chezmoi.NewAbsPath(mackupBinaryPathResolved)
 
-       libDirAbsPath := brewPrefix.JoinString("Cellar", "mackup", 
mackupVersion, "libexec", "lib")
+       libDirAbsPath := mackupBinaryAbsPath.Dir().Dir().JoinString("lib")
        dirEntries, err := c.baseSystem.ReadDir(libDirAbsPath)
        if err != nil {
                return chezmoi.EmptyAbsPath, err
        }
-       var pythonDirRelPath chezmoi.RelPath
+
        for _, dirEntry := range dirEntries {
-               if dirEntry.IsDir() && strings.HasPrefix(dirEntry.Name(), 
"python") {
-                       pythonDirRelPath = chezmoi.NewRelPath(dirEntry.Name())
-                       break
+               if !dirEntry.IsDir() || !strings.HasPrefix(dirEntry.Name(), 
"python") {
+                       continue
                }
-       }
-       if pythonDirRelPath.Empty() {
-               return chezmoi.EmptyAbsPath, fmt.Errorf(
-                       "%s: could not find python directory",
-                       libDirAbsPath,
+               mackupApplicationsDirAbsPath := libDirAbsPath.JoinString(
+                       dirEntry.Name(),
+                       "site-packages",
+                       "mackup",
+                       "applications",
                )
+               if fileInfo, err := 
c.baseSystem.Stat(mackupApplicationsDirAbsPath); err == nil &&
+                       fileInfo.IsDir() {
+                       return mackupApplicationsDirAbsPath, nil
+               }
        }
 
-       return libDirAbsPath.Join(pythonDirRelPath).
-                       JoinString("site-packages", "mackup", "applications"),
-               nil
+       return chezmoi.EmptyAbsPath, fmt.Errorf(
+               "%s: mackup application directory not found",
+               libDirAbsPath,
+       )
 }
 
 func parseMackupApplication(data []byte) (mackupApplicationConfig, error) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.42.2/internal/cmd/testdata/scripts/mackup_darwin.txtar 
new/chezmoi-2.42.3/internal/cmd/testdata/scripts/mackup_darwin.txtar
--- old/chezmoi-2.42.2/internal/cmd/testdata/scripts/mackup_darwin.txtar        
2023-12-02 02:29:57.000000000 +0100
+++ new/chezmoi-2.42.3/internal/cmd/testdata/scripts/mackup_darwin.txtar        
1970-01-01 01:00:00.000000000 +0100
@@ -1,63 +0,0 @@
-[!darwin] skip 'Darwin only'
-
-chmod 755 bin/brew
-chmod 755 bin/mackup
-
-# test that chezmoi mackup add adds normal dotfiles
-exec chezmoi mackup add curl
-cmp $CHEZMOISOURCEDIR/dot_curlrc golden/dot_curlrc
-
-# test that chezmoi mackup add adds XDG configuration files
-exec chezmoi mackup add vscode
-cmp $CHEZMOISOURCEDIR/dot_config/Code/User/settings.json golden/settings.json
-
--- bin/brew --
-#!/bin/sh
-
-case "$*" in
-"--prefix")
-    echo "opt/homebrew"
-    ;;
-*)
-    echo "Error: Unknown command $*"
-    ;;
-esac
--- bin/mackup --
-#!/bin/sh
-
-case "$*" in
-"--version")
-    echo "Mackup 0.8.32"
-    ;;
-*)
-    echo "Usage:"
-    ;;
-esac
--- golden/dot_curlrc --
-# contents of .curlrc
--- golden/settings.json --
-# contents of .config/Code/User/settings.json
--- home/user/.config/Code/User/settings.json --
-# contents of .config/Code/User/settings.json
--- home/user/.curlrc --
-# contents of .curlrc
--- home/user/.mackup/curl.cfg --
-[application]
-name = Curl
-
-[configuration_files]
-.netrc
-.curlrc
--- 
opt/homebrew/Cellar/mackup/0.8.32/libexec/lib/python3.9/site-packages/mackup/applications/vscode.cfg
 --
-[application]
-name = Visual Studio Code
-
-[configuration_files]
-Library/Application Support/Code/User/snippets
-Library/Application Support/Code/User/keybindings.json
-Library/Application Support/Code/User/settings.json
-
-[xdg_configuration_files]
-Code/User/snippets
-Code/User/keybindings.json
-Code/User/settings.json
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.42.2/internal/cmd/testdata/scripts/mackupbrew_darwin.txtar 
new/chezmoi-2.42.3/internal/cmd/testdata/scripts/mackupbrew_darwin.txtar
--- old/chezmoi-2.42.2/internal/cmd/testdata/scripts/mackupbrew_darwin.txtar    
1970-01-01 01:00:00.000000000 +0100
+++ new/chezmoi-2.42.3/internal/cmd/testdata/scripts/mackupbrew_darwin.txtar    
2023-12-17 00:08:59.000000000 +0100
@@ -0,0 +1,47 @@
+[!darwin] skip 'Darwin only'
+
+# simulate a brew installation of mackup
+chmod 755 opt/homebrew/Cellar/mackup/0.8.32/libexec/bin/mackup
+mkdir opt/homebrew/Cellar/mackup/0.8.32/bin opt/homebrew/bin
+symlink opt/homebrew/Cellar/mackup/0.8.32/bin/mackup -> ../libexec/bin/mackup
+symlink opt/homebrew/bin/mackup -> ../Cellar/mackup/0.8.32/bin/mackup
+env PATH=$WORK/opt/homebrew/bin:$PATH
+
+# test that chezmoi mackup add adds normal dotfiles
+exec chezmoi mackup add curl
+cmp $CHEZMOISOURCEDIR/dot_curlrc golden/dot_curlrc
+
+# test that chezmoi mackup add adds XDG configuration files
+exec chezmoi mackup add vscode
+cmp $CHEZMOISOURCEDIR/dot_config/Code/User/settings.json golden/settings.json
+
+-- golden/dot_curlrc --
+# contents of .curlrc
+-- golden/settings.json --
+# contents of .config/Code/User/settings.json
+-- home/user/.config/Code/User/settings.json --
+# contents of .config/Code/User/settings.json
+-- home/user/.curlrc --
+# contents of .curlrc
+-- home/user/.mackup/curl.cfg --
+[application]
+name = Curl
+
+[configuration_files]
+.netrc
+.curlrc
+-- opt/homebrew/Cellar/mackup/0.8.32/libexec/bin/mackup --
+# mackup binary
+-- 
opt/homebrew/Cellar/mackup/0.8.32/libexec/lib/python3.9/site-packages/mackup/applications/vscode.cfg
 --
+[application]
+name = Visual Studio Code
+
+[configuration_files]
+Library/Application Support/Code/User/snippets
+Library/Application Support/Code/User/keybindings.json
+Library/Application Support/Code/User/settings.json
+
+[xdg_configuration_files]
+Code/User/snippets
+Code/User/keybindings.json
+Code/User/settings.json
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.42.2/internal/cmd/testdata/scripts/mackupmacports_darwin.txtar 
new/chezmoi-2.42.3/internal/cmd/testdata/scripts/mackupmacports_darwin.txtar
--- 
old/chezmoi-2.42.2/internal/cmd/testdata/scripts/mackupmacports_darwin.txtar    
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/chezmoi-2.42.3/internal/cmd/testdata/scripts/mackupmacports_darwin.txtar    
    2023-12-17 00:08:59.000000000 +0100
@@ -0,0 +1,46 @@
+[!darwin] skip 'Darwin only'
+
+# simulate a macports installation of mackup
+chmod 755 
opt/local/Library/Frameworks/Python.framework/Versions/3.11/bin/mackup
+mkdir opt/local/bin
+symlink opt/local/bin/mackup -> 
../Library/Frameworks/Python.framework/Versions/3.11/bin/mackup
+env PATH=$WORK/opt/local/bin:$PATH
+
+# test that chezmoi mackup add adds normal dotfiles
+exec chezmoi mackup add curl
+cmp $CHEZMOISOURCEDIR/dot_curlrc golden/dot_curlrc
+
+# test that chezmoi mackup add adds XDG configuration files
+exec chezmoi mackup add vscode
+cmp $CHEZMOISOURCEDIR/dot_config/Code/User/settings.json golden/settings.json
+
+-- golden/dot_curlrc --
+# contents of .curlrc
+-- golden/settings.json --
+# contents of .config/Code/User/settings.json
+-- home/user/.config/Code/User/settings.json --
+# contents of .config/Code/User/settings.json
+-- home/user/.curlrc --
+# contents of .curlrc
+-- home/user/.mackup/curl.cfg --
+[application]
+name = Curl
+
+[configuration_files]
+.netrc
+.curlrc
+-- opt/local/Library/Frameworks/Python.framework/Versions/3.11/bin/mackup --
+# mackup binary
+-- 
opt/local/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/mackup/applications/vscode.cfg
 --
+[application]
+name = Visual Studio Code
+
+[configuration_files]
+Library/Application Support/Code/User/snippets
+Library/Application Support/Code/User/keybindings.json
+Library/Application Support/Code/User/settings.json
+
+[xdg_configuration_files]
+Code/User/snippets
+Code/User/keybindings.json
+Code/User/settings.json
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.42.2/internal/cmd/testdata/scripts/mackuppip_darwin.txtar 
new/chezmoi-2.42.3/internal/cmd/testdata/scripts/mackuppip_darwin.txtar
--- old/chezmoi-2.42.2/internal/cmd/testdata/scripts/mackuppip_darwin.txtar     
1970-01-01 01:00:00.000000000 +0100
+++ new/chezmoi-2.42.3/internal/cmd/testdata/scripts/mackuppip_darwin.txtar     
2023-12-17 00:08:59.000000000 +0100
@@ -0,0 +1,46 @@
+[!darwin] skip 'Darwin only'
+
+# simulate a pip installation of mackup
+chmod 755 usr/local/bin/mackup
+# version 3.9 of python without mackup
+mkdir usr/local/lib/python3.9/site-packages
+env PATH=$WORK/usr/local/bin:$PATH
+
+# test that chezmoi mackup add adds normal dotfiles
+exec chezmoi mackup add curl
+cmp $CHEZMOISOURCEDIR/dot_curlrc golden/dot_curlrc
+
+# test that chezmoi mackup add adds XDG configuration files
+exec chezmoi mackup add vscode
+cmp $CHEZMOISOURCEDIR/dot_config/Code/User/settings.json golden/settings.json
+
+-- golden/dot_curlrc --
+# contents of .curlrc
+-- golden/settings.json --
+# contents of .config/Code/User/settings.json
+-- home/user/.config/Code/User/settings.json --
+# contents of .config/Code/User/settings.json
+-- home/user/.curlrc --
+# contents of .curlrc
+-- home/user/.mackup/curl.cfg --
+[application]
+name = Curl
+
+[configuration_files]
+.netrc
+.curlrc
+-- usr/local/bin/mackup --
+# mackup binary
+-- usr/local/lib/python3.11/site-packages/mackup/applications/vscode.cfg --
+[application]
+name = Visual Studio Code
+
+[configuration_files]
+Library/Application Support/Code/User/snippets
+Library/Application Support/Code/User/keybindings.json
+Library/Application Support/Code/User/settings.json
+
+[xdg_configuration_files]
+Code/User/snippets
+Code/User/keybindings.json
+Code/User/settings.json
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.42.2/internal/cmd/testdata/scripts/mackuppipx_darwin.txtar 
new/chezmoi-2.42.3/internal/cmd/testdata/scripts/mackuppipx_darwin.txtar
--- old/chezmoi-2.42.2/internal/cmd/testdata/scripts/mackuppipx_darwin.txtar    
1970-01-01 01:00:00.000000000 +0100
+++ new/chezmoi-2.42.3/internal/cmd/testdata/scripts/mackuppipx_darwin.txtar    
2023-12-17 00:08:59.000000000 +0100
@@ -0,0 +1,46 @@
+[!darwin] skip 'Darwin only'
+
+# simulate a pipx installation of mackup
+chmod 755 home/.local/pipx/venvs/mackup/bin/mackup
+mkdir home/.local/bin
+symlink home/.local/bin/mackup -> ../pipx/venvs/mackup/bin/mackup
+env PATH=$WORK/home/.local/bin:$PATH
+
+# test that chezmoi mackup add adds normal dotfiles
+exec chezmoi mackup add curl
+cmp $CHEZMOISOURCEDIR/dot_curlrc golden/dot_curlrc
+
+# test that chezmoi mackup add adds XDG configuration files
+exec chezmoi mackup add vscode
+cmp $CHEZMOISOURCEDIR/dot_config/Code/User/settings.json golden/settings.json
+
+-- golden/dot_curlrc --
+# contents of .curlrc
+-- golden/settings.json --
+# contents of .config/Code/User/settings.json
+-- home/.local/pipx/venvs/mackup/bin/mackup --
+# mackup binary
+-- 
home/.local/pipx/venvs/mackup/lib/python3.11/site-packages/mackup/applications/vscode.cfg
 --
+[application]
+name = Visual Studio Code
+
+[configuration_files]
+Library/Application Support/Code/User/snippets
+Library/Application Support/Code/User/keybindings.json
+Library/Application Support/Code/User/settings.json
+
+[xdg_configuration_files]
+Code/User/snippets
+Code/User/keybindings.json
+Code/User/settings.json
+-- home/user/.config/Code/User/settings.json --
+# contents of .config/Code/User/settings.json
+-- home/user/.curlrc --
+# contents of .curlrc
+-- home/user/.mackup/curl.cfg --
+[application]
+name = Curl
+
+[configuration_files]
+.netrc
+.curlrc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.42.2/internal/cmd/util.go 
new/chezmoi-2.42.3/internal/cmd/util.go
--- old/chezmoi-2.42.2/internal/cmd/util.go     2023-12-02 02:29:57.000000000 
+0100
+++ new/chezmoi-2.42.3/internal/cmd/util.go     2023-12-17 00:08:59.000000000 
+0100
@@ -1,7 +1,6 @@
 package cmd
 
 import (
-       "reflect"
        "strings"
        "unicode"
 )
@@ -144,20 +143,3 @@
        }
        return result
 }
-
-func flattenStringList(vpaths []any) []string {
-       var paths []string
-       for i := range vpaths {
-               switch path := vpaths[i].(type) {
-               case []string:
-                       paths = append(paths, path...)
-               case string:
-                       paths = append(paths, path)
-               case []any:
-                       paths = append(paths, flattenStringList(path)...)
-               default:
-                       panic("unknown type: " + reflect.TypeOf(path).String())
-               }
-       }
-       return paths
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.42.2/internal/cmd/util_test.go 
new/chezmoi-2.42.3/internal/cmd/util_test.go
--- old/chezmoi-2.42.2/internal/cmd/util_test.go        2023-12-02 
02:29:57.000000000 +0100
+++ new/chezmoi-2.42.3/internal/cmd/util_test.go        2023-12-17 
00:08:59.000000000 +0100
@@ -1,8 +1,6 @@
 package cmd
 
 import (
-       "reflect"
-       "strings"
        "testing"
 
        "github.com/alecthomas/assert/v2"
@@ -150,47 +148,3 @@
                "id":           "",
        }, actual)
 }
-
-func Test_flattenStringList(t *testing.T) {
-       tests := []struct {
-               name   string
-               vpaths []any
-               want   []string
-       }{
-               {
-                       name: "Nothing",
-               },
-               {
-                       name:   "Just a string",
-                       vpaths: []any{"1"},
-                       want:   []string{"1"},
-               },
-               {
-                       name:   "Just a array of string",
-                       vpaths: []any{[]string{"1", "2"}},
-                       want:   []string{"1", "2"},
-               },
-               {
-                       name:   "Just a array of any containing string",
-                       vpaths: []any{[]any{"1", "2"}},
-                       want:   []string{"1", "2"},
-               },
-               {
-                       name:   "Just a array of any containing string",
-                       vpaths: []any{[]any{"1", "2"}},
-                       want:   []string{"1", "2"},
-               },
-               {
-                       name:   "Hybrid",
-                       vpaths: []any{"0", []any{"1", "2"}, []any{[]string{"3", 
"4"}}, []any{[]any{"5", "6"}}},
-                       want:   strings.Split("0123456", ""),
-               },
-       }
-       for _, tt := range tests {
-               t.Run(tt.name, func(t *testing.T) {
-                       if got := flattenStringList(tt.vpaths); 
!reflect.DeepEqual(got, tt.want) {
-                               t.Errorf("flattenStringList() = %v, want %v", 
got, tt.want)
-                       }
-               })
-       }
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.42.2/internal/cmds/lint-commit-messages/main.go 
new/chezmoi-2.42.3/internal/cmds/lint-commit-messages/main.go
--- old/chezmoi-2.42.2/internal/cmds/lint-commit-messages/main.go       
1970-01-01 01:00:00.000000000 +0100
+++ new/chezmoi-2.42.3/internal/cmds/lint-commit-messages/main.go       
2023-12-17 00:08:59.000000000 +0100
@@ -0,0 +1,49 @@
+package main
+
+import (
+       "bufio"
+       "bytes"
+       "fmt"
+       "os"
+       "os/exec"
+       "regexp"
+       "strings"
+)
+
+var commitRx = regexp.MustCompile(`\A([0-9a-f]{40}) 
(chore(?:\(\w+\))?|docs|feat|fix): `)
+
+func run() error {
+       args := append([]string{"log", "--format=oneline"}, os.Args[1:]...)
+       cmd := exec.Command("git", args...)
+       cmd.Stdin = os.Stdin
+       cmd.Stderr = os.Stderr
+       output, err := cmd.Output()
+       if err != nil {
+               return fmt.Errorf("git: %w", err)
+       }
+
+       var invalidCommitMessages []string
+       scanner := bufio.NewScanner(bytes.NewReader(output))
+       for scanner.Scan() {
+               commitMessage := scanner.Text()
+               if !commitRx.MatchString(commitMessage) {
+                       invalidCommitMessages = append(invalidCommitMessages, 
commitMessage)
+               }
+       }
+       if err := scanner.Err(); err != nil {
+               return fmt.Errorf("scanner: %w", err)
+       }
+
+       if len(invalidCommitMessages) != 0 {
+               return fmt.Errorf("invalid commit messages:\n%s", 
strings.Join(invalidCommitMessages, "\n"))
+       }
+
+       return nil
+}
+
+func main() {
+       if err := run(); err != nil {
+               fmt.Println(err)
+               os.Exit(1)
+       }
+}

++++++ chezmoi.obsinfo ++++++
--- /var/tmp/diff_new_pack.waxzmz/_old  2023-12-18 22:57:35.715242141 +0100
+++ /var/tmp/diff_new_pack.waxzmz/_new  2023-12-18 22:57:35.719242287 +0100
@@ -1,5 +1,5 @@
 name: chezmoi
-version: 2.42.2
-mtime: 1701480597
-commit: ea1e143fe416097792706a708144ffda0d85b268
+version: 2.42.3
+mtime: 1702768139
+commit: 43a4f5790ef1b709de881d36afb0a61745efa34f
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/chezmoi/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.chezmoi.new.9037/vendor.tar.gz differ: char 5, line 
1

Reply via email to