Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package chezmoi for openSUSE:Factory checked 
in at 2025-09-19 19:52:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/chezmoi (Old)
 and      /work/SRC/openSUSE:Factory/.chezmoi.new.27445 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "chezmoi"

Fri Sep 19 19:52:04 2025 rev:82 rq:1306037 version:2.65.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/chezmoi/chezmoi.changes  2025-08-27 
21:35:26.812605355 +0200
+++ /work/SRC/openSUSE:Factory/.chezmoi.new.27445/chezmoi.changes       
2025-09-19 19:52:30.669180134 +0200
@@ -1,0 +2,9 @@
+Fri Sep 19 15:13:08 UTC 2025 - Filippo Bonazzi <[email protected]>
+
+- Update to version 2.65.1:
+  - Features
+    * feat: Switch to znkr.io/diff for builtin diff
+    * feat: Merge podman command into docker command
+    * feat: Replace --package with --package-manager in docker, podman, and 
ssh commands
+
+-------------------------------------------------------------------

Old:
----
  chezmoi-2.65.0.obscpio

New:
----
  chezmoi-2.65.1.obscpio

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

Other differences:
------------------
++++++ chezmoi.spec ++++++
--- /var/tmp/diff_new_pack.1Tq2fM/_old  2025-09-19 19:52:32.821270455 +0200
+++ /var/tmp/diff_new_pack.1Tq2fM/_new  2025-09-19 19:52:32.837271127 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           chezmoi
-Version:        2.65.0
+Version:        2.65.1
 Release:        0
 Summary:        A multi-host manager for dotfiles
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.1Tq2fM/_old  2025-09-19 19:52:33.125283214 +0200
+++ /var/tmp/diff_new_pack.1Tq2fM/_new  2025-09-19 19:52:33.153284390 +0200
@@ -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.65.0</param>
+    <param name="revision">v2.65.1</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
   </service>

++++++ chezmoi-2.65.0.obscpio -> chezmoi-2.65.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.65.0/.github/actions/setup-go/action.yml 
new/chezmoi-2.65.1/.github/actions/setup-go/action.yml
--- old/chezmoi-2.65.0/.github/actions/setup-go/action.yml      2025-08-26 
14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/.github/actions/setup-go/action.yml      2025-09-09 
23:14:48.000000000 +0200
@@ -48,7 +48,7 @@
       key: ${{ inputs.cache-prefix }}-${{ runner.os }}-${{ runner.arch 
}}-go-${{ inputs.go-version }}-${{ hashFiles('**/go.sum') }}
       restore-keys: |
         ${{ inputs.cache-prefix }}-${{ runner.os }}-${{ runner.arch }}-go-${{ 
inputs.go-version }}-
-  - uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5
+  - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00
     with:
       cache: false
       go-version: ${{ inputs.go-version }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.65.0/.github/workflows/main.yml 
new/chezmoi-2.65.1/.github/workflows/main.yml
--- old/chezmoi-2.65.0/.github/workflows/main.yml       2025-08-26 
14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/.github/workflows/main.yml       2025-09-09 
23:14:48.000000000 +0200
@@ -16,15 +16,15 @@
 env:
   ACTIONLINT_VERSION: 1.7.7 # https://github.com/rhysd/actionlint/releases
   AGE_VERSION: 1.2.1 # https://github.com/FiloSottile/age/releases
-  CHOCOLATEY_VERSION: 2.5.0 # https://github.com/chocolatey/choco/releases
+  CHOCOLATEY_VERSION: 2.5.1 # https://github.com/chocolatey/choco/releases
   EDITORCONFIG_CHECKER_VERSION: 3.4.0 # 
https://github.com/editorconfig-checker/editorconfig-checker/releases
-  GO_VERSION: 1.25.0 # https://go.dev/doc/devel/release
+  GO_VERSION: 1.25.1 # https://go.dev/doc/devel/release
   GOLANGCI_LINT_VERSION: 2.4.0 # 
https://github.com/golangci/golangci-lint/releases
-  GORELEASER_VERSION: 2.11.2 # 
https://github.com/goreleaser/goreleaser/releases
+  GORELEASER_VERSION: 2.12.0 # 
https://github.com/goreleaser/goreleaser/releases
   GOVERSIONINFO_VERSION: 1.5.0 # 
https://github.com/josephspurrier/goversioninfo/releases
   PYTHON_VERSION: '3.10' # https://www.python.org/downloads/
   RAGE_VERSION: 0.11.1 # https://github.com/str4d/rage/releases
-  UV_VERSION: 0.8.13 # https://github.com/astral-sh/uv/releases
+  UV_VERSION: 0.8.15 # https://github.com/astral-sh/uv/releases
 jobs:
   changes:
     runs-on: ubuntu-22.04
@@ -67,10 +67,10 @@
       with:
         go-version: ${{ env.GO_VERSION }}
         upload-cache: false
-    - uses: github/codeql-action/init@e96e340c1e95e91449de06aabfa9525b7b98113f
+    - uses: github/codeql-action/init@16df4fbc19aea13d921737861d6c622bf3cefe23
       with:
         languages: go
-    - uses: 
github/codeql-action/analyze@e96e340c1e95e91449de06aabfa9525b7b98113f
+    - uses: 
github/codeql-action/analyze@16df4fbc19aea13d921737861d6c622bf3cefe23
   misspell:
     runs-on: ubuntu-22.04
     permissions:
@@ -302,7 +302,7 @@
       with:
         cache-prefix: website-go
         go-version: ${{ env.GO_VERSION }}
-    - uses: astral-sh/setup-uv@4959332f0f014c5280e7eac8b70c90cb574c9f9b
+    - uses: astral-sh/setup-uv@557e51de59eb14aaaba2ed9621916900a91d50c6
       with:
         enable-cache: true
         version: ${{ env.UV_VERSION }}
@@ -493,7 +493,7 @@
       with:
         cache-prefix: website-go
         go-version: ${{ env.GO_VERSION }}
-    - uses: astral-sh/setup-uv@4959332f0f014c5280e7eac8b70c90cb574c9f9b
+    - uses: astral-sh/setup-uv@557e51de59eb14aaaba2ed9621916900a91d50c6
       with:
         enable-cache: true
         version: ${{ env.UV_VERSION }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.65.0/.goreleaser.yaml 
new/chezmoi-2.65.1/.goreleaser.yaml
--- old/chezmoi-2.65.0/.goreleaser.yaml 2025-08-26 14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/.goreleaser.yaml 2025-09-09 23:14:48.000000000 +0200
@@ -83,6 +83,8 @@
     goarch: '386'
   - goos: linux
     goarch: amd64
+  - goos: openbsd
+    goarch: riscv64
   - goos: windows
     goarch: arm
 
@@ -131,7 +133,7 @@
   - title: Fixes
     regexp: ^.*?fix(\([[:word:]]+\))??!?:.+$
     order: 1
-  - title: Documentation updates
+  - title: Documentation
     regexp: ^.*?docs?(\([[:word:]]+\))??!?:.+$
     order: 2
   - title: Other
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.65.0/Makefile new/chezmoi-2.65.1/Makefile
--- old/chezmoi-2.65.0/Makefile 2025-08-26 14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/Makefile 2025-09-09 23:14:48.000000000 +0200
@@ -177,6 +177,10 @@
                GOBIN=$(shell pwd)/bin ${GO} install 
"github.com/josephspurrier/goversioninfo/cmd/goversioninfo@v${GOVERSIONINFO_VERSION}"
 ; \
        fi
 
+.PHONY: generate
+embed:
+       CHEZMOIDEV=ignoreflags=1,ignorehelp=1 go generate
+
 .PHONY: release
 release: ensure-goreleaser
        ./bin/goreleaser release \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.65.0/assets/chezmoi.io/docs/developer-guide/contributing-changes.md
 
new/chezmoi-2.65.1/assets/chezmoi.io/docs/developer-guide/contributing-changes.md
--- 
old/chezmoi-2.65.0/assets/chezmoi.io/docs/developer-guide/contributing-changes.md
   2025-08-26 14:21:59.000000000 +0200
+++ 
new/chezmoi-2.65.1/assets/chezmoi.io/docs/developer-guide/contributing-changes.md
   2025-09-09 23:14:48.000000000 +0200
@@ -19,7 +19,13 @@
 * The documentation is updated, if necessary. For new features you should add 
an
   entry in `assets/chezmoi.io/docs/user-guide/` and a complete description in
   `assets/chezmoi.io/docs/reference/`. See the [website][website] for
-  instructions on how to build and view a local version of the documentation.
+  instructions on how to build and view a local version of the documentation. 
By
+  default, chezmoi will panic if a flag is undocumented or a long help is
+  missing for a command. You can disable this panic during development by
+  setting the environment variable `CHEZMOIDEV` to 
`ignoreflags=1,ignorehelp=1`.
+  Once you have documented the command and its flags, run
+  `make generate` to generate the embedded
+  documentation.
 
 * All generated files are up to date. You can ensure this by running `make
   generate` and including any modified files in your commit.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.65.0/assets/chezmoi.io/docs/install.md.tmpl 
new/chezmoi-2.65.1/assets/chezmoi.io/docs/install.md.tmpl
--- old/chezmoi-2.65.0/assets/chezmoi.io/docs/install.md.tmpl   2025-08-26 
14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/assets/chezmoi.io/docs/install.md.tmpl   2025-09-09 
23:14:48.000000000 +0200
@@ -23,6 +23,12 @@
         pacman -S chezmoi
         ```
 
+    === "Fedora"
+
+        ```sh
+        dnf install chezmoi
+        ```
+
     === "NixOS"
 
         ```sh
@@ -35,6 +41,12 @@
         zypper install chezmoi
         ```
 
+    === "RHEL (EPEL)"
+
+        ```sh
+        dnf install epel-release && dnf install chezmoi
+        ```
+
     === "Termux"
 
         ```sh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.65.0/assets/chezmoi.io/docs/links/articles.md.yaml 
new/chezmoi-2.65.1/assets/chezmoi.io/docs/links/articles.md.yaml
--- old/chezmoi-2.65.0/assets/chezmoi.io/docs/links/articles.md.yaml    
2025-08-26 14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/assets/chezmoi.io/docs/links/articles.md.yaml    
2025-09-09 23:14:48.000000000 +0200
@@ -576,7 +576,16 @@
   version: 2.63.1
   title: Dotfile management with Chezmoi and Vim
   url: 
https://www.probableodyssey.blog/all-posts/dotfile_management_with_chezmoi_and_vim/
+- date: '2025-08-12'
+  version: 2.64.0
+  title: From Dotfiles to Portable Dev Environments
+  url: 
https://dakaiser.substack.com/p/from-dotfiles-to-portable-dev-environments
 - date: '2025-08-18'
   version: 2.64.0
   title: secure dotfiles management with chezmoi
   url: https://walterra.dev/blog/2025-08-18-chezmoi-keychain-integration
+- date: '2025-08-27'
+  version: 2.56.0
+  lang: JP
+  title: chezmoi
+  url: https://www.ebiyuu.com/dotfiles/chezmoi/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.65.0/assets/chezmoi.io/docs/reference/commands/docker.md 
new/chezmoi-2.65.1/assets/chezmoi.io/docs/reference/commands/docker.md
--- old/chezmoi-2.65.0/assets/chezmoi.io/docs/reference/commands/docker.md      
2025-08-26 14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/assets/chezmoi.io/docs/reference/commands/docker.md      
2025-09-09 23:14:48.000000000 +0200
@@ -4,8 +4,13 @@
 
     `docker` is an experimental command.
 
+!!! Hint
+
+    To use [podman](https://podman.io/) instead of Docker, set the
+    `docker.command` configuration variable to `podman`.
+
 Install chezmoi, run `chezmoi init --apply`, and optionally execute your shell
-in Docker containers.
+in [Docker](https://docker.com/) containers.
 
 ## Subcommands
 
@@ -16,17 +21,19 @@
 
 #### Flags
 
-#### `-i`, `--interactive`
+##### `-i`, `--interactive`
 
 Keep stdin open even if not attached.
 
-#### `-p`, `--package`
+##### `-p`, `--package-manager` *package-manager*
 
-Install chezmoi using the distribution's package manager, if possible.
-Otherwise, fall back to `curl` or `wget` installation. If neither `curl` nor
-`wget` are installed then install them with the distribution's package manager.
+Install chezmoi using *package-manager*, if possible. Valid values for
+*package-manager* include `apk`, `apt-get`, `brew`, `dnf`, `nix-env`, `pacman`,
+`port`, `pkg`, `rpm`, `snap`, `xbps-install`, and `zypper`. Otherwise, fall 
back
+to `curl` or `wget` installation. If neither `curl` nor `wget` are installed
+then install them with *package-manager*.
 
-#### `-s`, `--shell`
+##### `-s`, `--shell`
 
 After installing chezmoi, initializing your dotfiles, execute your shell. This
 is the default.
@@ -36,15 +43,19 @@
 Create a new Docker container using *image-id*, and in it, install chezmoi, run
 `chezmoi init --apply *init-args*`, and execute your shell.
 
-#### `-p`, `--package`
+#### Flags
+
+##### `-p`, `--package-manager` *package-manager*
 
-Install chezmoi using the distribution's package manager, if possible.
-Otherwise, fall back to `curl` or `wget` installation. If neither `curl` nor
-`wget` are installed then install them with the distribution's package manager.
+Install chezmoi using *package-manager*, if possible. Valid values for
+*package-manager* include `apk`, `apt-get`, `brew`, `dnf`, `nix-env`, `pacman`,
+`port`, `pkg`, `rpm`, `snap`, `xbps-install`, and `zypper`. Otherwise, fall 
back
+to `curl` or `wget` installation. If neither `curl` nor `wget` are installed
+then install them with *package-manager*.
 
 ## Examples
 
 ```sh
 chezmoi docker exec $CONTAINER_ID $GITHUB_USERNAME
-chezmoi docker run alpine:latest $GITHUB_USERNAME
+chezmoi docker run -p apk alpine:latest $GITHUB_USERNAME
 ```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.65.0/assets/chezmoi.io/docs/reference/commands/podman.md 
new/chezmoi-2.65.1/assets/chezmoi.io/docs/reference/commands/podman.md
--- old/chezmoi-2.65.0/assets/chezmoi.io/docs/reference/commands/podman.md      
2025-08-26 14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/assets/chezmoi.io/docs/reference/commands/podman.md      
1970-01-01 01:00:00.000000000 +0100
@@ -1,50 +0,0 @@
-# `podman`
-
-!!! Warning
-
-    `podman` is an experimental command.
-
-Install chezmoi, run `chezmoi init --apply`, and optionally execute your shell
-in podman containers.
-
-## Subcommands
-
-### `exec` *container-id* *init-args*...
-
-Install chezmoi, run `chezmoi init --apply *init-args*`, and execute your shell
-in the existing podman container *container-id*.
-
-#### Flags
-
-#### `-i`, `--interactive`
-
-Keep stdin open even if not attached.
-
-#### `-p`, `--package`
-
-Install chezmoi using the distribution's package manager, if possible.
-Otherwise, fall back to `curl` or `wget` installation. If neither `curl` nor
-`wget` are installed then install them with the distribution's package manager.
-
-#### `-s`, `--shell`
-
-After installing chezmoi, initializing your dotfiles, execute your shell. This
-is the default.
-
-### `run` *image-id* *init-args*...
-
-Create a new podman container using *image-id*, and in it, install chezmoi, run
-`chezmoi init --apply *init-args*`, and execute your shell.
-
-#### `-p`, `--package`
-
-Install chezmoi using the distribution's package manager, if possible.
-Otherwise, fall back to `curl` or `wget` installation. If neither `curl` nor
-`wget` are installed then install them with the distribution's package manager.
-
-## Examples
-
-```sh
-chezmoi podman exec $CONTAINER_ID $GITHUB_USERNAME
-chezmoi podman run alpine:latest $GITHUB_USERNAME
-```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.65.0/assets/chezmoi.io/docs/reference/commands/ssh.md 
new/chezmoi-2.65.1/assets/chezmoi.io/docs/reference/commands/ssh.md
--- old/chezmoi-2.65.0/assets/chezmoi.io/docs/reference/commands/ssh.md 
2025-08-26 14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/assets/chezmoi.io/docs/reference/commands/ssh.md 
2025-09-09 23:14:48.000000000 +0200
@@ -9,11 +9,13 @@
 
 ## Flags
 
-### `-p`, `--package`
+### `-p`, `--package-manager` *package-manager*
 
-Install chezmoi using the distribution's package manager, if possible.
-Otherwise, fall back to `curl` or `wget` installation. If neither `curl` nor
-`wget` are installed then install them with the distribution's package manager.
+Install chezmoi using *package-manager*, if possible. Valid values for
+*package-manager* include `apk`, `apt-get`, `brew`, `dnf`, `nix-env`, `pacman`,
+`port`, `pkg`, `rpm`, `snap`, `xbps-install`, and `zypper`. Otherwise, fall 
back
+to `curl` or `wget` installation. If neither `curl` nor `wget` are installed
+then install them with *package-manager*.
 
 ### `-s`, `--shell`
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.65.0/assets/chezmoi.io/docs/reference/configuration-file/variables.md.yaml
 
new/chezmoi-2.65.1/assets/chezmoi.io/docs/reference/configuration-file/variables.md.yaml
--- 
old/chezmoi-2.65.0/assets/chezmoi.io/docs/reference/configuration-file/variables.md.yaml
    2025-08-26 14:21:59.000000000 +0200
+++ 
new/chezmoi-2.65.1/assets/chezmoi.io/docs/reference/configuration-file/variables.md.yaml
    2025-09-09 23:14:48.000000000 +0200
@@ -164,6 +164,10 @@
       type: bool
       default: '`true`'
       description: Show script contents.
+  docker:
+    command:
+      default: '`docker`'
+      description: Docker CLI command.
   doppler:
     args:
       type: '[]string'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.65.0/assets/chezmoi.io/docs/reference/special-files/chezmoiignore.md
 
new/chezmoi-2.65.1/assets/chezmoi.io/docs/reference/special-files/chezmoiignore.md
--- 
old/chezmoi-2.65.0/assets/chezmoi.io/docs/reference/special-files/chezmoiignore.md
  2025-08-26 14:21:59.000000000 +0200
+++ 
new/chezmoi-2.65.1/assets/chezmoi.io/docs/reference/special-files/chezmoiignore.md
  2025-09-09 23:14:48.000000000 +0200
@@ -42,6 +42,11 @@
     {{- if ne .email "[email protected]" }}
     .personal-file
     {{- end }}
+
+    {{- if eq .chezmoi.os "windows" }}
+    Documents/*
+    !Documents/*PowerShell/ # ignore a folder, except for Windows PowerShell 
profiles
+    {{- end }}
     ```
 
 [match]: https://pkg.go.dev/github.com/bmatcuk/doublestar/v4#Match
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.65.0/assets/chezmoi.io/mkdocs.yml 
new/chezmoi-2.65.1/assets/chezmoi.io/mkdocs.yml
--- old/chezmoi-2.65.0/assets/chezmoi.io/mkdocs.yml     2025-08-26 
14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/assets/chezmoi.io/mkdocs.yml     2025-09-09 
23:14:48.000000000 +0200
@@ -179,7 +179,6 @@
     - managed: reference/commands/managed.md
     - merge: reference/commands/merge.md
     - merge-all: reference/commands/merge-all.md
-    - podman: reference/commands/podman.md
     - purge: reference/commands/purge.md
     - re-add: reference/commands/re-add.md
     - remove: reference/commands/remove.md
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.65.0/assets/scripts/install-local-bin.sh 
new/chezmoi-2.65.1/assets/scripts/install-local-bin.sh
--- old/chezmoi-2.65.0/assets/scripts/install-local-bin.sh      2025-08-26 
14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/assets/scripts/install-local-bin.sh      2025-09-09 
23:14:48.000000000 +0200
@@ -175,7 +175,6 @@
        openbsd/arm) return 0 ;;
        openbsd/arm64) return 0 ;;
        openbsd/ppc64) return 0 ;;
-       openbsd/riscv64) return 0 ;;
        windows/386) return 0 ;;
        windows/amd64) return 0 ;;
        *)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.65.0/assets/scripts/install.sh 
new/chezmoi-2.65.1/assets/scripts/install.sh
--- old/chezmoi-2.65.0/assets/scripts/install.sh        2025-08-26 
14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/assets/scripts/install.sh        2025-09-09 
23:14:48.000000000 +0200
@@ -174,7 +174,6 @@
        openbsd/arm) return 0 ;;
        openbsd/arm64) return 0 ;;
        openbsd/ppc64) return 0 ;;
-       openbsd/riscv64) return 0 ;;
        windows/386) return 0 ;;
        windows/amd64) return 0 ;;
        *)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.65.0/assets/templates/install-init-shell.sh.tmpl 
new/chezmoi-2.65.1/assets/templates/install-init-shell.sh.tmpl
--- old/chezmoi-2.65.0/assets/templates/install-init-shell.sh.tmpl      
2025-08-26 14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/assets/templates/install-init-shell.sh.tmpl      
2025-09-09 23:14:48.000000000 +0200
@@ -32,53 +32,72 @@
 fi
 
 chezmoi=chezmoi
-if ! (is_command chezmoi); then
-       if is_command "${HOME}/.local/bin/chezmoi"; then
-               chezmoi="${HOME}/.local/bin/chezmoi"
-       elif is_command "${HOME}/bin/chezmoi"; then
-               chezmoi="${HOME}/bin/chezmoi"
-{{- if .package }}
-       elif is_command apk; then
-               ${sudo}apk add chezmoi
-       elif is_command brew; then
-               ${sudo}brew install chezmoi
-       elif is_command pacman; then
-               ${sudo}pacman -S chezmoi
-       elif is_command port; then
-               ${sudo}port install chezmoi
-       elif is_command nix-env; then
-               ${sudo}nix-env -i chezmoi
-       elif is_command snap; then
-               ${sudo}snap install chezmoi --classic
-       elif is_command zypper; then
-               ${sudo}zypper install chezmoi
-       elif is_command pkg; then
-               ${sudo}pkg install chezmoi
-       elif is_command xbps-install; then
-               ${sudo}xbps-install -S chezmoi
-{{- end }}
-       elif is_command curl; then
-               sh -c "$(curl -fsSL get.chezmoi.io/lb)"
-               chezmoi="$HOME/.local/bin/chezmoi"
-       elif is_command wget; then
-               sh -c "$(wget -qO- get.chezmoi.io/lb)"
-               chezmoi="$HOME/.local/bin/chezmoi"
-{{- if .package }}
-       elif is_command apt-get; then
+if is_command chezmoi; then
+       chezmoi --version
+elif is_command "${HOME}/.local/bin/chezmoi"; then
+       chezmoi="${HOME}/.local/bin/chezmoi"
+elif is_command "${HOME}/bin/chezmoi"; then
+       chezmoi="${HOME}/bin/chezmoi"
+{{- if eq .packageManager "apk" }}
+elif is_command apk; then
+       ${sudo}apk add chezmoi
+{{- else if eq .packageManager "apt-get" }}
+elif is_command apt-get; then
+       if ! (is_command curl); then
                export DEBIAN_FRONTEND=noninteractive
                ${sudo}apt-get update
                ${sudo}apt-get install --yes curl
-               sh -c "$(curl -fsSL get.chezmoi.io/lb)"
-               chezmoi="$HOME/.local/bin/chezmoi"
-       elif is_command dnf; then
+       fi
+       sh -c "$(curl -fsSL get.chezmoi.io/lb)"
+       chezmoi="$HOME/.local/bin/chezmoi"
+{{- else if eq .packageManager "brew" }}
+elif is_command brew; then
+       ${sudo}brew install chezmoi
+{{- else if eq .packageManager "dnf" }}
+elif is_command dnf; then
+       if ! (is_command curl); then
                ${sudo}dnf install curl
-               sh -c "$(curl -fsSL get.chezmoi.io/lb)"
-               chezmoi="$HOME/.local/bin/chezmoi"
-{{- end }}
-       else
-               echo "unable to install chezmoi" 1>&2
-               exit 1
        fi
+       sh -c "$(curl -fsSL get.chezmoi.io/lb)"
+       chezmoi="$HOME/.local/bin/chezmoi"
+{{- else if eq .packageManager "nix-env" }}
+elif is_command nix-env; then
+       ${sudo}nix-env -i chezmoi
+{{- else if eq .packageManager "pacman" }}
+elif is_command pacman; then
+       ${sudo}pacman -S chezmoi
+{{- else if eq .packageManager "port" }}
+elif is_command port; then
+       ${sudo}port install chezmoi
+{{- else if eq .packageManager "pkg" }}
+elif is_command pkg; then
+       ${sudo}pkg install chezmoi
+{{- else if eq .packageManager "rpm" }}
+elif is_command dnf; then
+       if ! (is_command curl); then
+               ${sudo}rpm --install curl
+       fi
+       sh -c "$(curl -fsSL get.chezmoi.io/lb)"
+       chezmoi="$HOME/.local/bin/chezmoi"
+{{- else if eq .packageManager "snap" }}
+elif is_command snap; then
+       ${sudo}snap install chezmoi --classic
+{{- else if eq .packageManager "xbps-install" }}
+elif is_command xbps-install; then
+       ${sudo}xbps-install -S chezmoi
+{{- else if eq .packageManager "zypper" }}
+elif is_command zypper; then
+       ${sudo}zypper install chezmoi
+{{- end }}
+elif is_command curl; then
+       sh -c "$(curl -fsSL get.chezmoi.io/lb)"
+       chezmoi="$HOME/.local/bin/chezmoi"
+elif is_command wget; then
+       sh -c "$(wget -qO- get.chezmoi.io/lb)"
+       chezmoi="$HOME/.local/bin/chezmoi"
+else
+       echo "unable to install chezmoi" 1>&2
+       exit 1
 fi
 
 ${chezmoi} init --apply {{ .args | quoteList | join " " }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.65.0/go.mod new/chezmoi-2.65.1/go.mod
--- old/chezmoi-2.65.0/go.mod   2025-08-26 14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/go.mod   2025-09-09 23:14:48.000000000 +0200
@@ -1,6 +1,6 @@
 module github.com/twpayne/chezmoi
 
-go 1.25.0
+go 1.25.1
 
 tool (
        github.com/twpayne/chezmoi
@@ -23,13 +23,13 @@
        github.com/Masterminds/sprig/v3 v3.3.0
        github.com/Shopify/ejson v1.5.4
        github.com/alecthomas/assert/v2 v2.11.0
-       github.com/aws/aws-sdk-go-v2 v1.38.1
-       github.com/aws/aws-sdk-go-v2/config v1.31.2
-       github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.38.2
+       github.com/aws/aws-sdk-go-v2 v1.39.0
+       github.com/aws/aws-sdk-go-v2/config v1.31.7
+       github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.39.3
        github.com/bmatcuk/doublestar/v4 v4.9.1
        github.com/bradenhilton/mozillainstallhash v1.0.1
        github.com/charmbracelet/bubbles v0.20.0
-       github.com/charmbracelet/bubbletea v1.3.6
+       github.com/charmbracelet/bubbletea v1.3.8
        github.com/charmbracelet/glamour v0.10.0
        github.com/charmbracelet/lipgloss v1.1.1-0.20250404203927-76690c660834
        github.com/coreos/go-semver v0.3.1
@@ -50,9 +50,8 @@
        github.com/nwaples/rardecode/v2 v2.1.1
        github.com/pelletier/go-toml/v2 v2.2.4
        github.com/rogpeppe/go-internal v1.14.1
-       github.com/sergi/go-diff v1.4.0
-       github.com/spf13/cobra v1.9.1
-       github.com/spf13/pflag v1.0.7
+       github.com/spf13/cobra v1.10.1
+       github.com/spf13/pflag v1.0.10
        github.com/tailscale/hujson v0.0.0-20250605163823-992244df8c5a
        github.com/tobischo/gokeepasslib/v3 v3.6.1
        github.com/twpayne/go-expect v0.0.2-0.20241130000624-916db2914efd
@@ -60,19 +59,20 @@
        github.com/twpayne/go-shell v0.5.0
        github.com/twpayne/go-vfs/v5 v5.0.5
        github.com/twpayne/go-xdg/v6 v6.1.3
-       github.com/ulikunitz/xz v0.5.13
+       github.com/ulikunitz/xz v0.5.15
        github.com/zalando/go-keyring v0.2.6
        github.com/zricethezav/gitleaks/v8 v8.28.0
        go.etcd.io/bbolt v1.4.3
-       golang.org/x/crypto v0.41.0
-       golang.org/x/oauth2 v0.30.0
-       golang.org/x/sync v0.16.0
-       golang.org/x/sys v0.35.0
-       golang.org/x/term v0.34.0
-       golang.org/x/text v0.28.0
+       golang.org/x/crypto v0.42.0
+       golang.org/x/oauth2 v0.31.0
+       golang.org/x/sync v0.17.0
+       golang.org/x/sys v0.36.0
+       golang.org/x/term v0.35.0
+       golang.org/x/text v0.29.0
        gopkg.in/ini.v1 v1.67.0
        howett.net/plist v1.0.1
        mvdan.cc/sh/v3 v3.12.0
+       znkr.io/diff v0.0.0-20250830203116-b13b7c6d4781
 )
 
 require (
@@ -82,7 +82,7 @@
        github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.0 // indirect
        github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 // indirect
        github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.2.0 
// indirect
-       github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // 
indirect
+       github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 // 
indirect
        github.com/BobuSumisu/aho-corasick v1.0.3 // indirect
        github.com/Masterminds/goutils v1.1.1 // indirect
        github.com/Masterminds/semver/v3 v3.4.0 // indirect
@@ -90,20 +90,20 @@
        github.com/ProtonMail/go-crypto v1.3.0 // indirect
        github.com/STARRY-S/zip v0.2.3 // indirect
        github.com/alecthomas/chroma/v2 v2.20.0 // indirect
-       github.com/alecthomas/repr v0.5.1 // indirect
+       github.com/alecthomas/repr v0.5.2 // indirect
        github.com/andybalholm/brotli v1.2.0 // indirect
        github.com/atotto/clipboard v0.1.4 // indirect
-       github.com/aws/aws-sdk-go-v2/credentials v1.18.6 // indirect
-       github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.4 // indirect
-       github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.4 // indirect
-       github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.4 // indirect
+       github.com/aws/aws-sdk-go-v2/credentials v1.18.11 // indirect
+       github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.7 // indirect
+       github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7 // indirect
+       github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7 // indirect
        github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
-       github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 
// indirect
-       github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.4 // 
indirect
-       github.com/aws/aws-sdk-go-v2/service/sso v1.28.2 // indirect
-       github.com/aws/aws-sdk-go-v2/service/ssooidc v1.33.2 // indirect
-       github.com/aws/aws-sdk-go-v2/service/sts v1.38.0 // indirect
-       github.com/aws/smithy-go v1.22.5 // indirect
+       github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 
// indirect
+       github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7 // 
indirect
+       github.com/aws/aws-sdk-go-v2/service/sso v1.29.2 // indirect
+       github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.3 // indirect
+       github.com/aws/aws-sdk-go-v2/service/sts v1.38.3 // indirect
+       github.com/aws/smithy-go v1.23.0 // indirect
        github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
        github.com/aymerick/douceur v0.2.0 // indirect
        github.com/blang/semver/v4 v4.0.0 // indirect
@@ -116,7 +116,7 @@
        github.com/charmbracelet/harmonica v0.2.0 // indirect
        github.com/charmbracelet/x/ansi v0.10.1 // indirect
        github.com/charmbracelet/x/cellbuf v0.0.13 // indirect
-       github.com/charmbracelet/x/exp/slice v0.0.0-20250821175832-f235fab04313 
// indirect
+       github.com/charmbracelet/x/exp/slice v0.0.0-20250909190653-d79841eb2127 
// indirect
        github.com/charmbracelet/x/term v0.2.1 // indirect
        github.com/cloudflare/circl v1.6.1 // indirect
        github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
@@ -151,9 +151,10 @@
        github.com/itchyny/timefmt-go v0.1.6 // indirect
        github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // 
indirect
        github.com/kevinburke/ssh_config v1.4.0 // indirect
+       github.com/klauspost/cpuid/v2 v2.3.0 // indirect
        github.com/klauspost/pgzip v1.2.6 // indirect
        github.com/kylelemons/godebug v1.1.0 // indirect
-       github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
+       github.com/lucasb-eyer/go-colorful v1.3.0 // indirect
        github.com/mattn/go-colorable v0.1.14 // indirect
        github.com/mattn/go-isatty v0.0.20 // indirect
        github.com/mattn/go-localereader v0.0.1 // indirect
@@ -167,19 +168,20 @@
        github.com/muesli/reflow v0.3.0 // indirect
        github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
        github.com/pierrec/lz4/v4 v4.1.22 // indirect
-       github.com/pjbgf/sha1cd v0.4.0 // indirect
+       github.com/pjbgf/sha1cd v0.5.0 // indirect
        github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
        github.com/rivo/uniseg v0.4.7 // indirect
        github.com/rs/zerolog v1.34.0 // indirect
        github.com/russross/blackfriday/v2 v2.1.0 // indirect
-       github.com/sagikazarmark/locafero v0.10.0 // indirect
+       github.com/sagikazarmark/locafero v0.11.0 // indirect
+       github.com/sergi/go-diff v1.4.0 // indirect
        github.com/shopspring/decimal v1.4.0 // indirect
        github.com/skeema/knownhosts v1.3.1 // indirect
        github.com/sorairolake/lzip-go v0.3.8 // indirect
        github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 // 
indirect
-       github.com/spf13/afero v1.14.0 // indirect
-       github.com/spf13/cast v1.9.2 // indirect
-       github.com/spf13/viper v1.20.1 // indirect
+       github.com/spf13/afero v1.15.0 // indirect
+       github.com/spf13/cast v1.10.0 // indirect
+       github.com/spf13/viper v1.21.0 // indirect
        github.com/subosito/gotenv v1.6.0 // indirect
        github.com/tetratelabs/wazero v1.9.0 // indirect
        github.com/tobischo/argon2 v0.1.0 // indirect
@@ -192,9 +194,10 @@
        github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 // indirect
        github.com/yuin/goldmark v1.7.13 // indirect
        github.com/yuin/goldmark-emoji v1.0.6 // indirect
+       go.yaml.in/yaml/v3 v3.0.4 // indirect
        go4.org v0.0.0-20230225012048-214862532bf5 // indirect
        golang.org/x/exp v0.0.0-20250819193227-8b4c13bb791b // indirect
-       golang.org/x/net v0.43.0 // indirect
+       golang.org/x/net v0.44.0 // indirect
        golang.org/x/tools v0.36.0 // indirect
        gopkg.in/warnings.v0 v0.1.2 // indirect
        gopkg.in/yaml.v3 v3.0.1 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.65.0/go.sum new/chezmoi-2.65.1/go.sum
--- old/chezmoi-2.65.0/go.sum   2025-08-26 14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/go.sum   2025-09-09 23:14:48.000000000 +0200
@@ -49,8 +49,8 @@
 github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.2.0/go.mod 
h1:ucUjca2JtSZboY8IoUqyQyuuXvwbMBVwFOm0vdQPNhA=
 github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 
h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM=
 github.com/AzureAD/microsoft-authentication-extensions-for-go/cache 
v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE=
-github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 
h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs=
-github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod 
h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI=
+github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 
h1:XkkQbfMyuH2jTSjQjSoihryI8GINRcs4xp8lNawg0FI=
+github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0/go.mod 
h1:HKpQxkWaGLJ+D/5H8QRpyQXA1eKjxkFlOMwck5+33Jk=
 github.com/BobuSumisu/aho-corasick v1.0.3 
h1:uuf+JHwU9CHP2Vx+wAy6jcksJThhJS9ehR8a+4nPE9g=
 github.com/BobuSumisu/aho-corasick v1.0.3/go.mod 
h1:hm4jLcvZKI2vRF2WDU1N4p/jpWtpOzp3nLmi9AzX/XE=
 github.com/BurntSushi/toml v0.3.1/go.mod 
h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
@@ -79,8 +79,8 @@
 github.com/alecthomas/assert/v2 v2.11.0/go.mod 
h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k=
 github.com/alecthomas/chroma/v2 v2.20.0 
h1:sfIHpxPyR07/Oylvmcai3X/exDlE8+FA820NTz+9sGw=
 github.com/alecthomas/chroma/v2 v2.20.0/go.mod 
h1:e7tViK0xh/Nf4BYHl00ycY6rV7b8iXBksI9E359yNmA=
-github.com/alecthomas/repr v0.5.1 
h1:E3G4t2QbHTSNpPKBgMTln5KLkZHLOcU7r37J4pXBuIg=
-github.com/alecthomas/repr v0.5.1/go.mod 
h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
+github.com/alecthomas/repr v0.5.2 
h1:SU73FTI9D1P5UNtvseffFSGmdNci/O6RsqzeXJtP0Qs=
+github.com/alecthomas/repr v0.5.2/go.mod 
h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
 github.com/andybalholm/brotli v1.2.0 
h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ=
 github.com/andybalholm/brotli v1.2.0/go.mod 
h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY=
 github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be 
h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
@@ -89,34 +89,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.38.1 
h1:j7sc33amE74Rz0M/PoCpsZQ6OunLqys/m5antM0J+Z8=
-github.com/aws/aws-sdk-go-v2 v1.38.1/go.mod 
h1:9Q0OoGQoboYIAJyslFyF1f5K1Ryddop8gqMhWx/n4Wg=
-github.com/aws/aws-sdk-go-v2/config v1.31.2 
h1:NOaSZpVGEH2Np/c1toSeW0jooNl+9ALmsUTZ8YvkJR0=
-github.com/aws/aws-sdk-go-v2/config v1.31.2/go.mod 
h1:17ft42Yb2lF6OigqSYiDAiUcX4RIkEMY6XxEMJsrAes=
-github.com/aws/aws-sdk-go-v2/credentials v1.18.6 
h1:AmmvNEYrru7sYNJnp3pf57lGbiarX4T9qU/6AZ9SucU=
-github.com/aws/aws-sdk-go-v2/credentials v1.18.6/go.mod 
h1:/jdQkh1iVPa01xndfECInp1v1Wnp70v3K4MvtlLGVEc=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.4 
h1:lpdMwTzmuDLkgW7086jE94HweHCqG+uOJwHf3LZs7T0=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.4/go.mod 
h1:9xzb8/SV62W6gHQGC/8rrvgNXU6ZoYM3sAIJCIrXJxY=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.4 
h1:IdCLsiiIj5YJ3AFevsewURCPV+YWUlOW8JiPhoAy8vg=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.4/go.mod 
h1:l4bdfCD7XyyZA9BolKBo1eLqgaJxl0/x91PL4Yqe0ao=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.4 
h1:j7vjtr1YIssWQOMeOWRbh3z8g2oY/xPjnZH2gLY4sGw=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.4/go.mod 
h1:yDmJgqOiH4EA8Hndnv4KwAo8jCGTSnM5ASG1nBI+toA=
+github.com/aws/aws-sdk-go-v2 v1.39.0 
h1:xm5WV/2L4emMRmMjHFykqiA4M/ra0DJVSWUkDyBjbg4=
+github.com/aws/aws-sdk-go-v2 v1.39.0/go.mod 
h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY=
+github.com/aws/aws-sdk-go-v2/config v1.31.7 
h1:zS1O6hr6t0nZdBCMFc/c9OyZFyLhXhf/B2IZ9Y0lRQE=
+github.com/aws/aws-sdk-go-v2/config v1.31.7/go.mod 
h1:GpHmi1PQDdL5pP4JaB00pU0ek4EXVcYH7IkjkUadQmM=
+github.com/aws/aws-sdk-go-v2/credentials v1.18.11 
h1:1Fnb+7Dk96/VYx/uYfzk5sU2V0b0y2RWZROiMZCN/Io=
+github.com/aws/aws-sdk-go-v2/credentials v1.18.11/go.mod 
h1:iuvn9v10dkxU4sDgtTXGWY0MrtkEcmkUmjv4clxhuTc=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.7 
h1:Is2tPmieqGS2edBnmOJIbdvOA6Op+rRpaYR60iBAwXM=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.7/go.mod 
h1:F1i5V5421EGci570yABvpIXgRIBPb5JM+lSkHF6Dq5w=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7 
h1:UCxq0X9O3xrlENdKf1r9eRJoKz/b0AfGkpp3a7FPlhg=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7/go.mod 
h1:rHRoJUNUASj5Z/0eqI4w32vKvC7atoWR0jC+IkmVH8k=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7 
h1:Y6DTZUn7ZUC4th9FMBbo8LVE+1fyq3ofw+tRwkUd3PY=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7/go.mod 
h1:x3XE6vMnU9QvHN/Wrx2s44kwzV2o2g5x/siw4ZUJ9g8=
 github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 
h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo=
 github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod 
h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 
h1:6+lZi2JeGKtCraAj1rpoZfKqnQ9SptseRZioejfUOLM=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0/go.mod 
h1:eb3gfbVIxIoGgJsi9pGne19dhCBpK6opTYpQqAmdy44=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.4 
h1:ueB2Te0NacDMnaC+68za9jLwkjzxGWm0KB5HTUHjLTI=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.4/go.mod 
h1:nLEfLnVMmLvyIG58/6gsSA03F1voKGaCfHV7+lR8S7s=
-github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.38.2 
h1:BvsTLbavBCIWhGav8Rm/vPPyyhDwkOMSi0pkGaohCag=
-github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.38.2/go.mod 
h1:KwGTe+BJ29tKBIkVuZgDzlw70aS4BZxLJVqAjwnhfRQ=
-github.com/aws/aws-sdk-go-v2/service/sso v1.28.2 
h1:ve9dYBB8CfJGTFqcQ3ZLAAb/KXWgYlgu/2R2TZL2Ko0=
-github.com/aws/aws-sdk-go-v2/service/sso v1.28.2/go.mod 
h1:n9bTZFZcBa9hGGqVz3i/a6+NG0zmZgtkB9qVVFDqPA8=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.33.2 
h1:pd9G9HQaM6UZAZh19pYOkpKSQkyQQ9ftnl/LttQOcGI=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.33.2/go.mod 
h1:eknndR9rU8UpE/OmFpqU78V1EcXPKFTTm5l/buZYgvM=
-github.com/aws/aws-sdk-go-v2/service/sts v1.38.0 
h1:iV1Ko4Em/lkJIsoKyGfc0nQySi+v0Udxr6Igq+y9JZc=
-github.com/aws/aws-sdk-go-v2/service/sts v1.38.0/go.mod 
h1:bEPcjW7IbolPfK67G1nilqWyoxYMSPrDiIQ3RdIdKgo=
-github.com/aws/smithy-go v1.22.5 
h1:P9ATCXPMb2mPjYBgueqJNCA5S9UfktsW0tTxi+a7eqw=
-github.com/aws/smithy-go v1.22.5/go.mod 
h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 
h1:oegbebPEMA/1Jny7kvwejowCaHz1FWZAQ94WXFNCyTM=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1/go.mod 
h1:kemo5Myr9ac0U9JfSjMo9yHLtw+pECEHsFtJ9tqCEI8=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7 
h1:mLgc5QIgOy26qyh5bvW+nDoAppxgn3J2WV3m9ewq7+8=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7/go.mod 
h1:wXb/eQnqt8mDQIQTTmcw58B5mYGxzLGZGK8PWNFZ0BA=
+github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.39.3 
h1:IhkIkvACqBTY6I8mbwXV5xFXQyNJuR8X0gfcbTXFjHk=
+github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.39.3/go.mod 
h1:GrB/4Cn7N41psUAycqnwGDzT7qYJdUm+VnEZpyZAG4I=
+github.com/aws/aws-sdk-go-v2/service/sso v1.29.2 
h1:rcoTaYOhGE/zfxE1uR6X5fvj+uKkqeCNRE0rBbiQM34=
+github.com/aws/aws-sdk-go-v2/service/sso v1.29.2/go.mod 
h1:Ql6jE9kyyWI5JHn+61UT/Y5Z0oyVJGmgmJbZD5g4unY=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.3 
h1:BSIfeFtU9tlSt8vEYS7KzurMoAuYzYPWhcZiMtxVf2M=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.3/go.mod 
h1:XclEty74bsGBCr1s0VSaA11hQ4ZidK4viWK7rRfO88I=
+github.com/aws/aws-sdk-go-v2/service/sts v1.38.3 
h1:yEiZ0ztgji2GsCb/6uQSITXcGdtmWMfLRys0jJFiUkc=
+github.com/aws/aws-sdk-go-v2/service/sts v1.38.3/go.mod 
h1:Z+Gd23v97pX9zK97+tX4ppAgqCt3Z2dIXB02CtBncK8=
+github.com/aws/smithy-go v1.23.0 
h1:8n6I3gXzWJB2DxBDnfxgBaSX6oe0d/t10qGz7OKqMCE=
+github.com/aws/smithy-go v1.23.0/go.mod 
h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI=
 github.com/aymanbagabas/go-osc52/v2 v2.0.1 
h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
 github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod 
h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
 github.com/aymanbagabas/go-udiff v0.2.0 
h1:TK0fH4MteXUDspT88n8CKzvK0X9O2xu9yQjWpi6yML8=
@@ -151,8 +151,8 @@
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod 
h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 github.com/charmbracelet/bubbles v0.20.0 
h1:jSZu6qD8cRQ6k9OMfR1WlM+ruM8fkPWkHvQWD9LIutE=
 github.com/charmbracelet/bubbles v0.20.0/go.mod 
h1:39slydyswPy+uVOHZ5x/GjwVAFkCsV8IIVy+4MhzwwU=
-github.com/charmbracelet/bubbletea v1.3.6 
h1:VkHIxPJQeDt0aFJIsVxw8BQdh/F/L2KKZGsK6et5taU=
-github.com/charmbracelet/bubbletea v1.3.6/go.mod 
h1:oQD9VCRQFF8KplacJLo28/jofOI2ToOfGYeFgBBxHOc=
+github.com/charmbracelet/bubbletea v1.3.8 
h1:DJlh6UUPhobzomqCtnLJRmhBSxwUJoPPi6iCToUDr4g=
+github.com/charmbracelet/bubbletea v1.3.8/go.mod 
h1:ORQfo0fk8U+po9VaNvnV95UPWA1BitP1E0N6xJPlHr4=
 github.com/charmbracelet/colorprofile v0.3.2 
h1:9J27WdztfJQVAQKX2WOlSSRB+5gaKqqITmrvb1uTIiI=
 github.com/charmbracelet/colorprofile v0.3.2/go.mod 
h1:mTD5XzNeWHj8oqHb+S1bssQb7vIHbepiebQ2kPKVKbI=
 github.com/charmbracelet/glamour v0.10.0 
h1:MtZvfwsYCx8jEPFJm3rIBFIMZUfUJ765oX8V6kXldcY=
@@ -167,8 +167,8 @@
 github.com/charmbracelet/x/cellbuf v0.0.13/go.mod 
h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs=
 github.com/charmbracelet/x/exp/golden v0.0.0-20240815200342-61de596daa2b 
h1:MnAMdlwSltxJyULnrYbkZpp4k58Co7Tah3ciKhSNo0Q=
 github.com/charmbracelet/x/exp/golden 
v0.0.0-20240815200342-61de596daa2b/go.mod 
h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U=
-github.com/charmbracelet/x/exp/slice v0.0.0-20250821175832-f235fab04313 
h1:pRcKW226AkTTlE1oo5U59RbD4g/dac+i4kshf51rjMs=
-github.com/charmbracelet/x/exp/slice v0.0.0-20250821175832-f235fab04313/go.mod 
h1:vI5nDVMWi6veaYH+0Fmvpbe/+cv/iJfMntdh+N0+Tms=
+github.com/charmbracelet/x/exp/slice v0.0.0-20250909190653-d79841eb2127 
h1:PdC3Vpy42ZP8u3wvA+mngEDO7jicu0rF7wAO2mB5fN4=
+github.com/charmbracelet/x/exp/slice v0.0.0-20250909190653-d79841eb2127/go.mod 
h1:vqEfX6xzqW1pKKZUUiFOKg0OQ7bCh54Q2vR/tserrRA=
 github.com/charmbracelet/x/term v0.2.1 
h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ=
 github.com/charmbracelet/x/term v0.2.1/go.mod 
h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg=
 github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE=
@@ -392,8 +392,8 @@
 github.com/klauspost/compress v1.18.0/go.mod 
h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
 github.com/klauspost/cpuid v1.2.0 
h1:NMpwD2G9JSFOE1/TJjGSo5zG7Yb2bTe7eq1jH+irmeE=
 github.com/klauspost/cpuid v1.2.0/go.mod 
h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
-github.com/klauspost/cpuid/v2 v2.2.10 
h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE=
-github.com/klauspost/cpuid/v2 v2.2.10/go.mod 
h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
+github.com/klauspost/cpuid/v2 v2.3.0 
h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
+github.com/klauspost/cpuid/v2 v2.3.0/go.mod 
h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
 github.com/klauspost/pgzip v1.2.6 
h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU=
 github.com/klauspost/pgzip v1.2.6/go.mod 
h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
 github.com/kr/pretty v0.1.0/go.mod 
h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
@@ -406,8 +406,8 @@
 github.com/kr/text v0.2.0/go.mod 
h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
 github.com/kylelemons/godebug v1.1.0 
h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
 github.com/kylelemons/godebug v1.1.0/go.mod 
h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
-github.com/lucasb-eyer/go-colorful v1.2.0 
h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
-github.com/lucasb-eyer/go-colorful v1.2.0/go.mod 
h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
+github.com/lucasb-eyer/go-colorful v1.3.0 
h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag=
+github.com/lucasb-eyer/go-colorful v1.3.0/go.mod 
h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
 github.com/lucasjones/reggen v0.0.0-20200904144131-37ba4fa293bb 
h1:w1g9wNDIE/pHSTmAaUhv4TZQuPBS6GV3mMz5hkgziIU=
 github.com/lucasjones/reggen v0.0.0-20200904144131-37ba4fa293bb/go.mod 
h1:5ELEyG+X8f+meRWHuqUOewBOhvHkl7M76pdGEansxW4=
 github.com/lxn/win v0.0.0-20210218163916-a377121e959e 
h1:H+t6A/QJMbhCSEH5rAuRxh+CtW96g0Or0Fxa9IKr4uc=
@@ -478,8 +478,8 @@
 github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod 
h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
 github.com/pierrec/lz4/v4 v4.1.22 
h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU=
 github.com/pierrec/lz4/v4 v4.1.22/go.mod 
h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
-github.com/pjbgf/sha1cd v0.4.0 h1:NXzbL1RvjTUi6kgYZCX3fPwwl27Q1LJndxtUDVfJGRY=
-github.com/pjbgf/sha1cd v0.4.0/go.mod 
h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A=
+github.com/pjbgf/sha1cd v0.5.0 h1:a+UkboSi1znleCDUNT3M5YxjOnN1fz2FhN48FlwCxs0=
+github.com/pjbgf/sha1cd v0.5.0/go.mod 
h1:lhpGlyHLpQZoxMv8HcgXvZEhcGs0PG/vsZnEJ7H0iCM=
 github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c 
h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
 github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod 
h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU=
 github.com/pkg/errors v0.8.1/go.mod 
h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -507,8 +507,8 @@
 github.com/russross/blackfriday/v2 v2.1.0/go.mod 
h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd 
h1:CmH9+J6ZSsIjUK3dcGsnCnO41eRBOnY12zwkn5qVwgc=
 github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod 
h1:hPqNNc0+uJM6H+SuU8sEs5K5IQeKccPqeSjfgcKGgPk=
-github.com/sagikazarmark/locafero v0.10.0 
h1:FM8Cv6j2KqIhM2ZK7HZjm4mpj9NBktLgowT1aN9q5Cc=
-github.com/sagikazarmark/locafero v0.10.0/go.mod 
h1:Ieo3EUsjifvQu4NZwV5sPd4dwvu0OCgEQV7vjc9yDjw=
+github.com/sagikazarmark/locafero v0.11.0 
h1:1iurJgmM9G3PA/I+wWYIOw/5SyBtxapeHDcg+AAIFXc=
+github.com/sagikazarmark/locafero v0.11.0/go.mod 
h1:nVIGvgyzw595SUSUE6tvCp3YYTeHs15MvlmU87WwIik=
 github.com/sagikazarmark/slog-shim v0.1.0 
h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
 github.com/sagikazarmark/slog-shim v0.1.0/go.mod 
h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
 github.com/sahilm/fuzzy v0.1.1 h1:ceu5RHF8DGgoi+/dR5PsECjCDH1BE3Fnmpo7aVXOdRA=
@@ -534,18 +534,18 @@
 github.com/sorairolake/lzip-go v0.3.8/go.mod 
h1:JcBqGMV0frlxwrsE9sMWXDjqn3EeVf0/54YPsw66qkU=
 github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 
h1:+jumHNA0Wrelhe64i8F6HNlS8pkoyMv5sreGx2Ry5Rw=
 github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8/go.mod 
h1:3n1Cwaq1E1/1lhQhtRK2ts/ZwZEhjcQeJQ1RuC6Q/8U=
-github.com/spf13/afero v1.14.0 h1:9tH6MapGnn/j0eb0yIXiLjERO8RB6xIVZRDCX7PtqWA=
-github.com/spf13/afero v1.14.0/go.mod 
h1:acJQ8t0ohCGuMN3O+Pv0V0hgMxNYDlvdk+VTfyZmbYo=
-github.com/spf13/cast v1.9.2 h1:SsGfm7M8QOFtEzumm7UZrZdLLquNdzFYfIbEXntcFbE=
-github.com/spf13/cast v1.9.2/go.mod 
h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo=
-github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo=
-github.com/spf13/cobra v1.9.1/go.mod 
h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0=
+github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I=
+github.com/spf13/afero v1.15.0/go.mod 
h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg=
+github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY=
+github.com/spf13/cast v1.10.0/go.mod 
h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo=
+github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s=
+github.com/spf13/cobra v1.10.1/go.mod 
h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=
 github.com/spf13/pflag v1.0.3/go.mod 
h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
-github.com/spf13/pflag v1.0.6/go.mod 
h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
-github.com/spf13/pflag v1.0.7 h1:vN6T9TfwStFPFM5XzjsvmzZkLuaLX+HS+0SeFLRgU6M=
-github.com/spf13/pflag v1.0.7/go.mod 
h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
-github.com/spf13/viper v1.20.1 h1:ZMi+z/lvLyPSCoNtFCpqjy0S4kPbirhpTMwl8BkW9X4=
-github.com/spf13/viper v1.20.1/go.mod 
h1:P9Mdzt1zoHIG8m2eZQinpiBjo6kCmZSKBClNNqjJvu4=
+github.com/spf13/pflag v1.0.9/go.mod 
h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
+github.com/spf13/pflag v1.0.10/go.mod 
h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/spf13/viper v1.21.0 h1:x5S+0EU27Lbphp4UKm1C+1oQO+rKx36vfCoaVebLFSU=
+github.com/spf13/viper v1.21.0/go.mod 
h1:P0lhsswPGWD/1lZJ9ny3fYnVqxiegrlNrEmgLjbTCAY=
 github.com/stretchr/objx v0.1.0/go.mod 
h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.4.0/go.mod 
h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
 github.com/stretchr/objx v0.5.0/go.mod 
h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
@@ -557,8 +557,8 @@
 github.com/stretchr/testify v1.7.1/go.mod 
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.8.0/go.mod 
h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
 github.com/stretchr/testify v1.8.1/go.mod 
h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/stretchr/testify v1.10.0 
h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
-github.com/stretchr/testify v1.10.0/go.mod 
h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/stretchr/testify v1.11.1 
h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
+github.com/stretchr/testify v1.11.1/go.mod 
h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
 github.com/subosito/gotenv v1.6.0 
h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
 github.com/subosito/gotenv v1.6.0/go.mod 
h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
 github.com/tailscale/hujson v0.0.0-20250605163823-992244df8c5a 
h1:a6TNDN9CgG+cYjaeN8l2mc4kSz2iMiCDQxPEyltUV/I=
@@ -584,8 +584,8 @@
 github.com/twpayne/go-xdg/v6 v6.1.3 
h1:viM0S9v4KAc0IRW2xI3Zp8ZkqOCoCxmCmVZ7GTnG0y0=
 github.com/twpayne/go-xdg/v6 v6.1.3/go.mod 
h1:kVT9oShzQ0Cb5r4gzwziZUfluW2sTR72slQC/4N1AXI=
 github.com/ulikunitz/xz v0.5.8/go.mod 
h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
-github.com/ulikunitz/xz v0.5.13 h1:ar98gWrjf4H1ev05fYP/o29PDZw9DrI3niHtnEqyuXA=
-github.com/ulikunitz/xz v0.5.13/go.mod 
h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
+github.com/ulikunitz/xz v0.5.15 h1:9DNdB5s+SgV3bQ2ApL10xRc35ck0DuIX/isZvIk+ubY=
+github.com/ulikunitz/xz v0.5.15/go.mod 
h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
 github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk=
 github.com/urfave/cli v1.22.14/go.mod 
h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA=
 github.com/urfave/cli/v2 v2.27.7 
h1:bH59vdhbjLv3LAvIu6gd0usJHgoTTPhCFib8qqOwXYU=
@@ -624,10 +624,10 @@
 go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 go.opencensus.io v0.22.3 h1:8sGtKOrtQqkN1bp2AtX+misvLIlOmsEsNd+9NIcPEm8=
 go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
-go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
-go.uber.org/atomic v1.9.0/go.mod 
h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
 go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
 go.uber.org/multierr v1.11.0/go.mod 
h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
+go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
+go.yaml.in/yaml/v3 v3.0.4/go.mod 
h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
 go4.org v0.0.0-20230225012048-214862532bf5 
h1:nifaUDeh+rPaBCMPMQHZmvJf+QdpLFnuQPwx+LxVmtc=
 go4.org v0.0.0-20230225012048-214862532bf5/go.mod 
h1:F57wTi5Lrj6WLyswp5EYV1ncrEbFGHD4hhz6S1ZYeaU=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod 
h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
@@ -636,8 +636,8 @@
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod 
h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod 
h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod 
h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4=
-golang.org/x/crypto v0.41.0/go.mod 
h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc=
+golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI=
+golang.org/x/crypto v0.42.0/go.mod 
h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod 
h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -690,15 +690,15 @@
 golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod 
h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
 golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
 golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
-golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=
-golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=
+golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I=
+golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod 
h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI=
-golang.org/x/oauth2 v0.30.0/go.mod 
h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU=
+golang.org/x/oauth2 v0.31.0 h1:8Fq0yVZLh4j4YA47vHKFTa9Ew5XIrCP8LC6UeNZnLxo=
+golang.org/x/oauth2 v0.31.0/go.mod 
h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -707,8 +707,8 @@
 golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
-golang.org/x/sync v0.16.0/go.mod 
h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
+golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
+golang.org/x/sync v0.17.0/go.mod 
h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -737,15 +737,15 @@
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
-golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
+golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
+golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
 golang.org/x/telemetry v0.0.0-20250807160809-1a19826ec488 
h1:3doPGa+Gg4snce233aCWnbZVFsyFMo/dR40KK/6skyE=
 golang.org/x/telemetry v0.0.0-20250807160809-1a19826ec488/go.mod 
h1:fGb/2+tgXXjhjHsTNdVEEMZNWA0quBnfrO+AfoDSAKw=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
-golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4=
-golang.org/x/term v0.34.0/go.mod 
h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw=
+golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ=
+golang.org/x/term v0.35.0/go.mod 
h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA=
 golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod 
h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod 
h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -755,8 +755,8 @@
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
 golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
-golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
-golang.org/x/text v0.28.0/go.mod 
h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=
+golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk=
+golang.org/x/text v0.29.0/go.mod 
h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod 
h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 
h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod 
h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -879,3 +879,5 @@
 rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 rsc.io/sampler v1.3.0 h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4=
 rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
+znkr.io/diff v0.0.0-20250830203116-b13b7c6d4781 
h1:UQ4Z+JqhZX20wRApF0ipO1/Swu7qZgJRBbzR5EMUdD8=
+znkr.io/diff v0.0.0-20250830203116-b13b7c6d4781/go.mod 
h1:/vGfz3fuihn67yW8VDFcab+le37/Nz3BJRrvnun3EqA=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.65.0/internal/chezmoi/diff.go 
new/chezmoi-2.65.1/internal/chezmoi/diff.go
--- old/chezmoi-2.65.0/internal/chezmoi/diff.go 2025-08-26 14:21:59.000000000 
+0200
+++ new/chezmoi-2.65.1/internal/chezmoi/diff.go 2025-09-09 23:14:48.000000000 
+0200
@@ -4,20 +4,13 @@
        "io/fs"
        "net/http"
        "strings"
-       "time"
 
        "github.com/go-git/go-git/v5/plumbing"
        "github.com/go-git/go-git/v5/plumbing/filemode"
        "github.com/go-git/go-git/v5/plumbing/format/diff"
-       "github.com/sergi/go-diff/diffmatchpatch"
+       znkrdiff "znkr.io/diff"
 )
 
-var gitDiffOperation = map[diffmatchpatch.Operation]diff.Operation{
-       diffmatchpatch.DiffDelete: diff.Delete,
-       diffmatchpatch.DiffEqual:  diff.Equal,
-       diffmatchpatch.DiffInsert: diff.Add,
-}
-
 // A gitDiffChunk implements the
 // github.com/go-git/go-git/v5/plumbing/format/diff.Chunk interface.
 type gitDiffChunk struct {
@@ -25,8 +18,8 @@
        operation diff.Operation
 }
 
-func (c *gitDiffChunk) Content() string      { return c.content }
-func (c *gitDiffChunk) Type() diff.Operation { return c.operation }
+func (c gitDiffChunk) Content() string      { return c.content }
+func (c gitDiffChunk) Type() diff.Operation { return c.operation }
 
 // A gitDiffFile implements the
 // github.com/go-git/go-git/v5/plumbing/format/diff.File interface.
@@ -114,17 +107,28 @@
 // github.com/go-git/go-git/v5/plumbing/format/diff.Chunks required to 
transform
 // from into to.
 func diffChunks(from, to string) []diff.Chunk {
-       dmp := diffmatchpatch.New()
-       dmp.DiffTimeout = time.Second
-       fromRunes, toRunes, runesToLines := dmp.DiffLinesToRunes(from, to)
-       diffs := dmp.DiffCharsToLines(dmp.DiffMainRunes(fromRunes, toRunes, 
false), runesToLines)
-       chunks := make([]diff.Chunk, len(diffs))
-       for i, d := range diffs {
-               chunk := &gitDiffChunk{
-                       content:   d.Text,
-                       operation: gitDiffOperation[d.Type],
+       fromLines := withoutEmpty(strings.SplitAfter(from, "\n"))
+       toLines := withoutEmpty(strings.SplitAfter(to, "\n"))
+       edits := znkrdiff.Edits(fromLines, toLines, znkrdiff.Optimal())
+       chunks := make([]diff.Chunk, len(edits))
+       for i, edit := range edits {
+               switch edit.Op {
+               case znkrdiff.Delete:
+                       chunks[i] = gitDiffChunk{
+                               content:   edit.X,
+                               operation: diff.Delete,
+                       }
+               case znkrdiff.Insert:
+                       chunks[i] = gitDiffChunk{
+                               content:   edit.Y,
+                               operation: diff.Add,
+                       }
+               case znkrdiff.Match:
+                       chunks[i] = gitDiffChunk{
+                               content:   edit.X,
+                               operation: diff.Equal,
+                       }
                }
-               chunks[i] = chunk
        }
        return chunks
 }
@@ -143,3 +147,16 @@
 func isBinary(data []byte) bool {
        return len(data) != 0 && 
!strings.HasPrefix(http.DetectContentType(data), "text/")
 }
+
+func withoutEmpty(s []string) []string {
+       switch {
+       case len(s) == 0:
+               return nil
+       case s[0] == "":
+               return s[1:]
+       case s[len(s)-1] == "":
+               return s[:len(s)-1]
+       default:
+               return s
+       }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.65.0/internal/cmd/cmd.go 
new/chezmoi-2.65.1/internal/cmd/cmd.go
--- old/chezmoi-2.65.0/internal/cmd/cmd.go      2025-08-26 14:21:59.000000000 
+0200
+++ new/chezmoi-2.65.1/internal/cmd/cmd.go      2025-09-09 23:14:48.000000000 
+0200
@@ -27,6 +27,8 @@
        noArgs = []string(nil)
 
        deDuplicateErrorRx = regexp.MustCompile(`:\s+`)
+
+       chezmoiDev = make(map[string]string)
 )
 
 // A VersionInfo contains a version.
@@ -48,6 +50,11 @@
 
 // Main runs chezmoi and returns an exit code.
 func Main(versionInfo VersionInfo, args []string) int {
+       for _, pair := range strings.Split(os.Getenv("CHEZMOIDEV"), ",") {
+               key, value, _ := strings.Cut(pair, "=")
+               chezmoiDev[key] = value
+       }
+
        if err := runMain(versionInfo, args); err != nil {
                if errExitCode := chezmoi.ExitCodeError(0); errors.As(err, 
&errExitCode) {
                        return int(errExitCode)
@@ -114,16 +121,21 @@
 }
 
 // mustLongHelp returns the long help for command or panics if no long help
-// exists.
+// exists, unless ignorehelp=1 is set in the CHEZMOIDEV environment variable.
 func mustLongHelp(command string) string {
        help, ok := helps[command]
-       if !ok {
+       if !ok && chezmoiDev["ignorehelp"] != "1" {
                panic(command + ": missing long help")
        }
        return help.longHelp
 }
 
+// ensureAllFlagsDocumented ensures that all flags are documented, unless
+// ignoreflags=1 is set in the CHEZMOIDEV environment variable.
 func ensureAllFlagsDocumented(cmd *cobra.Command, persistentFlags 
*pflag.FlagSet) {
+       if chezmoiDev["ignoreflags"] == "1" {
+               return
+       }
        cmdName := cmd.Name()
        help, ok := helps[cmdName]
        if !ok && !cmd.Flags().HasFlags() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.65.0/internal/cmd/config.go 
new/chezmoi-2.65.1/internal/cmd/config.go
--- old/chezmoi-2.65.0/internal/cmd/config.go   2025-08-26 14:21:59.000000000 
+0200
+++ new/chezmoi-2.65.1/internal/cmd/config.go   2025-09-09 23:14:48.000000000 
+0200
@@ -156,6 +156,7 @@
        Add        addCmdConfig        `json:"add"        mapstructure:"add"    
    yaml:"add"`
        CD         cdCmdConfig         `json:"cd"         mapstructure:"cd"     
    yaml:"cd"`
        Completion completionCmdConfig `json:"completion" 
mapstructure:"completion" yaml:"completion"`
+       Docker     dockerCmdConfig     `json:"docker"     mapstructure:"docker" 
    yaml:"docker"`
        Diff       diffCmdConfig       `json:"diff"       mapstructure:"diff"   
    yaml:"diff"`
        Edit       editCmdConfig       `json:"edit"       mapstructure:"edit"   
    yaml:"edit"`
        Git        gitCmdConfig        `json:"git"        mapstructure:"git"    
    yaml:"git"`
@@ -198,7 +199,6 @@
        chattr          chattrCmdConfig
        data            dataCmdConfig
        destroy         destroyCmdConfig
-       docker          dockerPodmanCmdConfig
        doctor          doctorCmdConfig
        dump            dumpCmdConfig
        dumpConfig      dumpConfigCmdConfig
@@ -209,7 +209,6 @@
        init            initCmdConfig
        managed         managedCmdConfig
        mergeAll        mergeAllCmdConfig
-       podman          dockerPodmanCmdConfig
        ssh             sshCmdConfig
        purge           purgeCmdConfig
        reAdd           reAddCmdConfig
@@ -363,12 +362,6 @@
                data: dataCmdConfig{
                        format: newChoiceFlag("", writeDataFormatValues),
                },
-               docker: dockerPodmanCmdConfig{
-                       exec: dockerPodmanExecCmdConfig{
-                               interactive: true,
-                               shell:       true,
-                       },
-               },
                dump: dumpCmdConfig{
                        filter:    
chezmoi.NewEntryTypeFilter(chezmoi.EntryTypesAll, chezmoi.EntryTypesNone),
                        format:    newChoiceFlag("", writeDataFormatValues),
@@ -408,12 +401,6 @@
                        filter:    
chezmoi.NewEntryTypeFilter(chezmoi.EntryTypesAll, chezmoi.EntryTypesNone),
                        recursive: true,
                },
-               podman: dockerPodmanCmdConfig{
-                       exec: dockerPodmanExecCmdConfig{
-                               interactive: true,
-                               shell:       true,
-                       },
-               },
                ssh: sshCmdConfig{
                        shell: true,
                },
@@ -1871,8 +1858,7 @@
                c.newDecryptCommand(),
                c.newDestroyCmd(),
                c.newDiffCmd(),
-               c.newDockerPodmanCmd("docker", &c.docker),
-               c.newDockerPodmanCmd("podman", &c.podman),
+               c.newDockerCmd(),
                c.newDoctorCmd(),
                c.newDumpCmd(),
                c.newDumpConfigCmd(),
@@ -2661,10 +2647,10 @@
 }
 
 type runInstallInitShellOptions struct {
-       args        []string
-       interactive bool
-       _package    bool
-       shell       bool
+       args           []string
+       interactive    bool
+       packageManager string
+       shell          bool
 }
 
 func (c *Config) runInstallInitShellSh(
@@ -2677,10 +2663,10 @@
                Name: "install-init-shell.sh.tmpl",
                Data: templates.InstallInitShellShTmpl,
                ExtraData: map[string]any{
-                       "args":        options.args,
-                       "interactive": options.interactive,
-                       "package":     options._package,
-                       "shell":       options.shell,
+                       "args":           options.args,
+                       "interactive":    options.interactive,
+                       "packageManager": options.packageManager,
+                       "shell":          options.shell,
                },
        })
        if err != nil {
@@ -3110,6 +3096,13 @@
                        ScriptContents: true,
                        include:        
chezmoi.NewEntryTypeSet(chezmoi.EntryTypesAll),
                },
+               Docker: dockerCmdConfig{
+                       Command: "docker",
+                       exec: dockerExecCmdConfig{
+                               interactive: true,
+                               shell:       true,
+                       },
+               },
                Edit: editCmdConfig{
                        Hardlink:    true,
                        MinDuration: 1 * time.Second,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.65.0/internal/cmd/dockercmd.go 
new/chezmoi-2.65.1/internal/cmd/dockercmd.go
--- old/chezmoi-2.65.0/internal/cmd/dockercmd.go        1970-01-01 
01:00:00.000000000 +0100
+++ new/chezmoi-2.65.1/internal/cmd/dockercmd.go        2025-09-09 
23:14:48.000000000 +0200
@@ -0,0 +1,96 @@
+package cmd
+
+import (
+       "github.com/spf13/cobra"
+
+       "github.com/twpayne/chezmoi/internal/chezmoi"
+)
+
+type dockerCmdConfig struct {
+       Command string `json:"command" mapstructure:"command" yaml:"command"`
+       exec    dockerExecCmdConfig
+       run     dockerRunCmdConfig
+}
+
+type dockerExecCmdConfig struct {
+       interactive    bool
+       packageManager string
+       shell          bool
+}
+
+type dockerRunCmdConfig struct {
+       packageManager string
+}
+
+func (c *Config) newDockerCmd() *cobra.Command {
+       commandCmd := &cobra.Command{
+               Use:   "docker",
+               Short: "Use your dotfiles in a Docker container",
+               Annotations: newAnnotations(
+                       persistentStateModeNone,
+               ),
+       }
+
+       commandExecCmd := &cobra.Command{
+               Use:   "exec container-id [args...]",
+               Short: "Install your dotfiles in an existing Docker container 
and execute a shell",
+               Args:  cobra.MinimumNArgs(1),
+               RunE:  c.makeRunEWithSourceState(c.runDockerExecCmd),
+               Annotations: newAnnotations(
+                       persistentStateModeReadWrite,
+               ),
+       }
+       commandExecCmd.Flags().
+               BoolVarP(&c.Docker.exec.interactive, "interactive", "i", 
c.Docker.exec.interactive, "Run interactively")
+       commandExecCmd.Flags().
+               StringVarP(&c.Docker.exec.packageManager, "package-manager", 
"p", c.Docker.exec.packageManager, "Package manager")
+       commandExecCmd.Flags().BoolVarP(&c.Docker.exec.shell, "shell", "s", 
c.Docker.exec.shell, "Execute shell afterwards")
+       commandCmd.AddCommand(commandExecCmd)
+
+       commandRunCmd := &cobra.Command{
+               Use:   "run image-id [args...]",
+               Short: "Create a new Docker container with your dotfiles and 
execute a shell",
+               Args:  cobra.MinimumNArgs(1),
+               RunE:  c.makeRunEWithSourceState(c.runDockerRunCmd),
+               Annotations: newAnnotations(
+                       persistentStateModeReadWrite,
+               ),
+       }
+       commandRunCmd.Flags().
+               StringVarP(&c.Docker.run.packageManager, "package-manager", 
"p", c.Docker.run.packageManager, "Package manager")
+       commandCmd.AddCommand(commandRunCmd)
+
+       return commandCmd
+}
+
+func (c *Config) runDockerExecCmd(cmd *cobra.Command, args []string, 
sourceState *chezmoi.SourceState) error {
+       commandArgs := []string{"exec"}
+       if c.Docker.exec.interactive {
+               commandArgs = append(commandArgs,
+                       "--interactive",
+                       "--tty",
+               )
+       }
+       commandArgs = append(commandArgs, args[0])
+       return c.runInstallInitShellSh(sourceState,
+               c.Docker.Command, commandArgs,
+               runInstallInitShellOptions{
+                       args:           args[1:],
+                       interactive:    c.Docker.exec.interactive,
+                       packageManager: c.Docker.exec.packageManager,
+                       shell:          c.Docker.exec.shell,
+               },
+       )
+}
+
+func (c *Config) runDockerRunCmd(cmd *cobra.Command, args []string, 
sourceState *chezmoi.SourceState) error {
+       return c.runInstallInitShellSh(sourceState,
+               c.Docker.Command, []string{"run", "--interactive", "--tty", 
args[0]},
+               runInstallInitShellOptions{
+                       args:           args[1:],
+                       interactive:    true,
+                       packageManager: c.Docker.run.packageManager,
+                       shell:          true,
+               },
+       )
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.65.0/internal/cmd/dockerpodmancmd.go 
new/chezmoi-2.65.1/internal/cmd/dockerpodmancmd.go
--- old/chezmoi-2.65.0/internal/cmd/dockerpodmancmd.go  2025-08-26 
14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/internal/cmd/dockerpodmancmd.go  1970-01-01 
01:00:00.000000000 +0100
@@ -1,89 +0,0 @@
-package cmd
-
-import (
-       "github.com/spf13/cobra"
-
-       "github.com/twpayne/chezmoi/internal/chezmoi"
-)
-
-type dockerPodmanCmdConfig struct {
-       exec dockerPodmanExecCmdConfig
-       run  dockerPodmanRunCmdConfig
-}
-
-type dockerPodmanExecCmdConfig struct {
-       interactive bool
-       _package    bool
-       shell       bool
-}
-
-type dockerPodmanRunCmdConfig struct {
-       _package bool
-}
-
-func (c *Config) newDockerPodmanCmd(command string, config 
*dockerPodmanCmdConfig) *cobra.Command {
-       commandCmd := &cobra.Command{
-               Use:   command,
-               Short: "Install chezmoi and your dotfiles in a " + command + " 
container",
-               Annotations: newAnnotations(
-                       persistentStateModeNone,
-               ),
-       }
-
-       commandExecCmd := &cobra.Command{
-               Use:   "exec container-id [args...]",
-               Short: "Install chezmoi and your dotfiles in an existing " + 
command + " container",
-               Args:  cobra.MinimumNArgs(1),
-               RunE: c.makeRunEWithSourceState(func(cmd *cobra.Command, args 
[]string, sourceState *chezmoi.SourceState) error {
-                       commandArgs := []string{"exec"}
-                       if config.exec.interactive {
-                               commandArgs = append(commandArgs,
-                                       "--interactive",
-                                       "--tty",
-                               )
-                       }
-                       commandArgs = append(commandArgs, args[0])
-                       return c.runInstallInitShellSh(sourceState,
-                               command, commandArgs,
-                               runInstallInitShellOptions{
-                                       args:        args[1:],
-                                       interactive: config.exec.interactive,
-                                       _package:    config.exec._package,
-                                       shell:       config.exec.shell,
-                               },
-                       )
-               }),
-               Annotations: newAnnotations(
-                       persistentStateModeReadWrite,
-               ),
-       }
-       commandExecCmd.Flags().
-               BoolVarP(&config.exec.interactive, "interactive", "i", 
config.exec.interactive, "Run interactively")
-       commandExecCmd.Flags().BoolVarP(&config.exec._package, "package", "p", 
config.exec._package, "Install with package")
-       commandExecCmd.Flags().BoolVarP(&config.exec.shell, "shell", "s", 
config.exec.shell, "Execute shell afterwards")
-       commandCmd.AddCommand(commandExecCmd)
-
-       commandRunCmd := &cobra.Command{
-               Use:   "run image-id [args...]",
-               Short: "Install chezmoi and your dotfiles in a new " + command 
+ " container",
-               Args:  cobra.MinimumNArgs(1),
-               RunE: c.makeRunEWithSourceState(func(cmd *cobra.Command, args 
[]string, sourceState *chezmoi.SourceState) error {
-                       return c.runInstallInitShellSh(sourceState,
-                               command, []string{"run", "--interactive", 
"--tty", args[0]},
-                               runInstallInitShellOptions{
-                                       args:        args[1:],
-                                       interactive: true,
-                                       _package:    config.run._package,
-                                       shell:       true,
-                               },
-                       )
-               }),
-               Annotations: newAnnotations(
-                       persistentStateModeReadWrite,
-               ),
-       }
-       commandRunCmd.Flags().BoolVarP(&config.run._package, "package", "p", 
config.run._package, "Install with package")
-       commandCmd.AddCommand(commandRunCmd)
-
-       return commandCmd
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.65.0/internal/cmd/generatecmd.go 
new/chezmoi-2.65.1/internal/cmd/generatecmd.go
--- old/chezmoi-2.65.0/internal/cmd/generatecmd.go      2025-08-26 
14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/internal/cmd/generatecmd.go      2025-09-09 
23:14:48.000000000 +0200
@@ -15,9 +15,9 @@
 }
 
 type generateInstallInitShellShCmdConfig struct {
-       interactive bool
-       _package    bool
-       shell       bool
+       interactive    bool
+       packageManager string
+       shell          bool
 }
 
 func (c *Config) newGenerateCmd() *cobra.Command {
@@ -66,7 +66,7 @@
        generateInstallInitShellShCmd.Flags().
                BoolVarP(&c.generate.installInitShellSh.interactive, 
"interactive", "i", c.generate.installInitShellSh.interactive, "Set 
interactive")
        generateInstallInitShellShCmd.Flags().
-               BoolVarP(&c.generate.installInitShellSh.shell, "package", "p", 
c.generate.installInitShellSh._package, "Install with package")
+               StringVarP(&c.generate.installInitShellSh.packageManager, 
"package-manager", "p", c.generate.installInitShellSh.packageManager, "Package 
manager")
        generateInstallInitShellShCmd.Flags().
                BoolVarP(&c.generate.installInitShellSh.shell, "shell", "s", 
c.generate.installInitShellSh.shell, "Set shell")
        generateCmd.AddCommand(generateInstallInitShellShCmd)
@@ -104,10 +104,10 @@
                Name: "install-init-shell.sh.tmpl",
                Data: templates.InstallInitShellShTmpl,
                ExtraData: map[string]any{
-                       "args":        args,
-                       "interactive": 
c.generate.installInitShellSh.interactive,
-                       "package":     c.generate.installInitShellSh._package,
-                       "shell":       c.generate.installInitShellSh.shell,
+                       "args":           args,
+                       "interactive":    
c.generate.installInitShellSh.interactive,
+                       "packageManager": 
c.generate.installInitShellSh.packageManager,
+                       "shell":          c.generate.installInitShellSh.shell,
                },
        })
        if err != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.65.0/internal/cmd/helps.gen.go 
new/chezmoi-2.65.1/internal/cmd/helps.gen.go
--- old/chezmoi-2.65.0/internal/cmd/helps.gen.go        2025-08-26 
14:21:59.000000000 +0200
+++ new/chezmoi-2.65.1/internal/cmd/helps.gen.go        2025-09-09 
23:14:48.000000000 +0200
@@ -303,7 +303,7 @@
                        "",
                example: "" +
                        "  chezmoi docker exec $CONTAINER_ID 
$GITHUB_USERNAME\n" +
-                       "  chezmoi docker run alpine:latest $GITHUB_USERNAME",
+                       "  chezmoi docker run -p apk alpine:latest 
$GITHUB_USERNAME",
        },
        "doctor": {
                longHelp: "" +
@@ -693,14 +693,6 @@
                        "r",
                ),
        },
-       "podman": {
-               longHelp: "" +
-                       "Description:\n" +
-                       "",
-               example: "" +
-                       "  chezmoi podman exec $CONTAINER_ID 
$GITHUB_USERNAME\n" +
-                       "  chezmoi podman run alpine:latest $GITHUB_USERNAME",
-       },
        "purge": {
                longHelp: "" +
                        "Description:\n" +
@@ -782,7 +774,7 @@
                        "  chezmoi ssh $HOSTNAME $GITHUB_USERNAME\n" +
                        "  chezmoi ssh $HOSTNAME -- --one-shot 
$GITHUB_USERNAME",
                longFlags: chezmoiset.New(
-                       "package",
+                       "package-manager",
                        "shell",
                ),
                shortFlags: chezmoiset.New(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.65.0/internal/cmd/sshcmd.go 
new/chezmoi-2.65.1/internal/cmd/sshcmd.go
--- old/chezmoi-2.65.0/internal/cmd/sshcmd.go   2025-08-26 14:21:59.000000000 
+0200
+++ new/chezmoi-2.65.1/internal/cmd/sshcmd.go   2025-09-09 23:14:48.000000000 
+0200
@@ -7,8 +7,8 @@
 )
 
 type sshCmdConfig struct {
-       _package bool
-       shell    bool
+       packageManager string
+       shell          bool
 }
 
 func (c *Config) newSSHCmd() *cobra.Command {
@@ -23,7 +23,7 @@
                        persistentStateModeReadWrite,
                ),
        }
-       sshCmd.Flags().BoolVarP(&c.ssh._package, "package", "p", 
c.ssh._package, "Install with package")
+       sshCmd.Flags().StringVarP(&c.ssh.packageManager, "package-manager", 
"p", c.ssh.packageManager, "Package manager")
        sshCmd.Flags().BoolVarP(&c.ssh.shell, "shell", "s", c.ssh.shell, 
"Execute shell afterwards")
 
        return sshCmd
@@ -33,10 +33,10 @@
        return c.runInstallInitShellSh(sourceState,
                "ssh", []string{args[0]},
                runInstallInitShellOptions{
-                       args:        args[1:],
-                       interactive: true,
-                       _package:    c.ssh._package,
-                       shell:       c.ssh.shell,
+                       args:           args[1:],
+                       interactive:    true,
+                       packageManager: c.ssh.packageManager,
+                       shell:          c.ssh.shell,
                },
        )
 }

++++++ chezmoi.obsinfo ++++++
--- /var/tmp/diff_new_pack.1Tq2fM/_old  2025-09-19 19:52:34.101324178 +0200
+++ /var/tmp/diff_new_pack.1Tq2fM/_new  2025-09-19 19:52:34.109324513 +0200
@@ -1,5 +1,5 @@
 name: chezmoi
-version: 2.65.0
-mtime: 1756210919
-commit: 39e5ad1b8bb7c35a8a23aa1bdda5343224e77329
+version: 2.65.1
+mtime: 1757452488
+commit: 071cf6509b1076a15becc669fb8885a6fa77e8a8
 

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

Reply via email to