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-06-06 19:55:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/chezmoi (Old)
 and      /work/SRC/openSUSE:Factory/.chezmoi.new.15902 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "chezmoi"

Tue Jun  6 19:55:51 2023 rev:25 rq:1090967 version:2.34.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/chezmoi/chezmoi.changes  2023-05-16 
14:28:11.456004282 +0200
+++ /work/SRC/openSUSE:Factory/.chezmoi.new.15902/chezmoi.changes       
2023-06-06 19:56:42.478632881 +0200
@@ -1,0 +2,9 @@
+Mon Jun  5 17:16:34 UTC 2023 - Filippo Bonazzi <filippo.bona...@suse.com>
+
+- Update to version 2.34.0:
+  * feat: Add support for .chezmoidata directory
+  * fix: Fix init --debug flag
+  * fix: Fix parsing of flags to secret keyring delete command
+  * chore: Update dependencies
+
+-------------------------------------------------------------------

Old:
----
  chezmoi-2.33.6.obscpio

New:
----
  chezmoi-2.34.0.obscpio

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

Other differences:
------------------
++++++ chezmoi.spec ++++++
--- /var/tmp/diff_new_pack.u0nm6G/_old  2023-06-06 19:56:43.294637718 +0200
+++ /var/tmp/diff_new_pack.u0nm6G/_new  2023-06-06 19:56:43.298637742 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           chezmoi
-Version:        2.33.6
+Version:        2.34.0
 Release:        0
 Summary:        A multi-host manager for dotfiles
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.u0nm6G/_old  2023-06-06 19:56:43.330637932 +0200
+++ /var/tmp/diff_new_pack.u0nm6G/_new  2023-06-06 19:56:43.334637956 +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.33.6</param>
+    <param name="revision">v2.34.0</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
   </service>

++++++ chezmoi-2.33.6.obscpio -> chezmoi-2.34.0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/.github/workflows/govulncheck.yml 
new/chezmoi-2.34.0/.github/workflows/govulncheck.yml
--- old/chezmoi-2.33.6/.github/workflows/govulncheck.yml        2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/.github/workflows/govulncheck.yml        2023-06-05 
00:19:01.000000000 +0200
@@ -11,7 +11,7 @@
       id: go-version
       run: |
         echo go-version="$(awk '/GO_VERSION:/ { print $2 }' 
.github/workflows/main.yml | tr -d \')" >> ${GITHUB_OUTPUT}
-    - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
+    - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753
       with:
         go-version: ${{ steps.go-version.outputs.go-version }}
     - name: install
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/.github/workflows/main.yml 
new/chezmoi-2.34.0/.github/workflows/main.yml
--- old/chezmoi-2.33.6/.github/workflows/main.yml       2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/.github/workflows/main.yml       2023-06-05 
00:19:01.000000000 +0200
@@ -12,7 +12,7 @@
   AGE_VERSION: 1.1.1
   GO_VERSION: 1.20.4
   GOFUMPT_VERSION: 0.4.0
-  GOLANGCI_LINT_VERSION: 1.52.1
+  GOLANGCI_LINT_VERSION: 1.53.2
   GOVERSIONINFO_VERSION: 1.4.0
 jobs:
   changes:
@@ -47,10 +47,10 @@
     - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
       with:
         fetch-depth: 1
-    - uses: github/codeql-action/init@29b1f65c5e92e24fe6b6647da1eaabe529cec70f
+    - uses: github/codeql-action/init@0225834cc549ee0ca93cb085b92954821a145866
       with:
         languages: go
-    - uses: 
github/codeql-action/analyze@29b1f65c5e92e24fe6b6647da1eaabe529cec70f
+    - uses: 
github/codeql-action/analyze@0225834cc549ee0ca93cb085b92954821a145866
   misspell:
     runs-on: ubuntu-22.04
     steps:
@@ -127,7 +127,7 @@
     runs-on: macos-11
     steps:
     - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
-    - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
+    - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753
       with:
         go-version: ${{ env.GO_VERSION }}
     - name: build
@@ -157,7 +157,7 @@
     runs-on: ubuntu-20.04
     steps:
     - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
-    - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
+    - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753
       with:
         go-version: oldstable
     - name: build
@@ -184,7 +184,7 @@
     - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
       with:
         fetch-depth: 0
-    - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
+    - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753
       with:
         go-version: ${{ env.GO_VERSION }}
     - name: install-release-dependencies
@@ -242,7 +242,7 @@
     - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
       with:
         fetch-depth: 0
-    - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
+    - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753
       with:
         go-version: ${{ env.GO_VERSION }}
     - name: install-age
@@ -280,7 +280,7 @@
     runs-on: ubuntu-20.04
     steps:
     - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
-    - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
+    - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753
       with:
         go-version: ${{ env.GO_VERSION }}
     - name: install-website-dependencies
@@ -295,7 +295,7 @@
     runs-on: windows-2019
     steps:
     - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
-    - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
+    - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753
       with:
         go-version: ${{ env.GO_VERSION }}
     - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8
@@ -334,7 +334,7 @@
     runs-on: ubuntu-20.04
     steps:
     - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
-    - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
+    - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753
       with:
         go-version: ${{ env.GO_VERSION }}
     - name: generate
@@ -360,7 +360,7 @@
     runs-on: ubuntu-20.04
     steps:
     - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
-    - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
+    - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753
       with:
         go-version: ${{ env.GO_VERSION }}
     - uses: 
golangci/golangci-lint-action@08e2f20817b15149a52b5b3ebe7de50aff2ba8c5
@@ -400,10 +400,10 @@
     - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
       with:
         fetch-depth: 0
-    - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
+    - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753
       with:
         go-version: ${{ env.GO_VERSION }}
-    - uses: sigstore/cosign-installer@204a51a57a74d190b284a0ce69b44bc37201f343
+    - uses: sigstore/cosign-installer@dd6b2e2b610a11fd73dd187a43d57cc1394e35f9
     - name: create-syso
       run: |
         make create-syso
@@ -424,7 +424,7 @@
     - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
       with:
         fetch-depth: 0
-    - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
+    - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753
       with:
         go-version: ${{ env.GO_VERSION }}
     - name: prepare-chezmoi.io
@@ -439,6 +439,7 @@
     - name: prepare-get.chezmoi.io
       run: |
         cp assets/scripts/install.sh assets/get.chezmoi.io/index.html
+        cp assets/scripts/install-local-bin.sh assets/get.chezmoi.io/lb
         cp assets/scripts/install.ps1 assets/get.chezmoi.io/ps1
         cp LICENSE assets/get.chezmoi.io/LICENSE
     - name: push-get.chezmoi.io
@@ -451,3 +452,4 @@
         destination-repository-name: get.chezmoi.io
         target-branch: gh-pages
         commit-message: 'chore: Update from ORIGIN_COMMIT'
+        user-email: twpa...@gmail.com
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/.golangci.yml 
new/chezmoi-2.34.0/.golangci.yml
--- old/chezmoi-2.33.6/.golangci.yml    2023-05-15 19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/.golangci.yml    2023-06-05 00:19:01.000000000 +0200
@@ -9,7 +9,6 @@
   - containedctx
   - contextcheck
   - decorder
-  - depguard
   - dogsled
   - dupl
   - dupword
@@ -34,6 +33,7 @@
   - goprintffuncname
   - gosec
   - gosimple
+  - gosmopolitan
   - govet
   - grouper
   - importas
@@ -69,9 +69,11 @@
   - usestdlibvars
   - wastedassign
   - whitespace
+  - zerologlint
   disable:
   - asasalint
   - cyclop
+  - depguard
   - exhaustive
   - exhaustruct
   - funlen
@@ -93,6 +95,7 @@
   - nlreturn
   - nonamedreturns
   - paralleltest
+  - tagalign
   - testpackage
   - tparallel
   - varnamelen
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.33.6/assets/chezmoi.io/docs/developer/architecture.md 
new/chezmoi-2.34.0/assets/chezmoi.io/docs/developer/architecture.md
--- old/chezmoi-2.33.6/assets/chezmoi.io/docs/developer/architecture.md 
2023-05-15 19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/assets/chezmoi.io/docs/developer/architecture.md 
2023-06-05 00:19:01.000000000 +0200
@@ -160,11 +160,10 @@
 
 chezmoi has a mix of, unit, integration, and end-to-end tests. Unit and
 integration tests use the
-[`github.com/stretchr/testify`](https://pkg.go.dev/github.com/stretchr/testify)
+[`github.com/alecthomas/assert/v2`](https://pkg.go.dev/github.com/alecthomas/assert)
 framework. End-to-end tests use
 
[`github.com/rogpeppe/go-internal/testscript`](https://pkg.go.dev/github.com/rogpeppe/go-internal/testscript)
-with the test scripts themselves in
-`pkg/cmd/testdata/scripts/$TEST_NAME.txtar`.
+with the test scripts themselves in 
`pkg/cmd/testdata/scripts/$TEST_NAME.txtar`.
 
 You can run individual end-to-end tests with
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/assets/chezmoi.io/docs/hooks.py 
new/chezmoi-2.34.0/assets/chezmoi.io/docs/hooks.py
--- old/chezmoi-2.33.6/assets/chezmoi.io/docs/hooks.py  2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/assets/chezmoi.io/docs/hooks.py  2023-06-05 
00:19:01.000000000 +0200
@@ -56,6 +56,7 @@
 
     # copy installation scripts
     utils.copy_file('../scripts/install.sh', os.path.join(site_dir, 'get'))
+    utils.copy_file('../scripts/install-local-bin.sh', os.path.join(site_dir, 
'getlb'))
     utils.copy_file('../scripts/install.ps1', os.path.join(site_dir, 
'get.ps1'))
 
     # copy cosign.pub
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.33.6/assets/chezmoi.io/docs/install.md.tmpl 
new/chezmoi-2.34.0/assets/chezmoi.io/docs/install.md.tmpl
--- old/chezmoi-2.33.6/assets/chezmoi.io/docs/install.md.tmpl   2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/assets/chezmoi.io/docs/install.md.tmpl   2023-06-05 
00:19:01.000000000 +0200
@@ -170,6 +170,11 @@
 
 !!! hint
 
+    If you want to install chezmoi in `./.local/bin` instead of `./bin` you can
+    use `get.chezmoi.io/lb` or `chezmoi.io/getlb` instead.
+
+!!! hint
+
     To install the chezmoi binary in a different directory, use the `-b` 
option,
     for example:
 
@@ -295,8 +300,9 @@
 
     cosign should print `Verified OK`
 
-Verify the that the SHA256 sum of your downloads match the SHA256 sum in the
-verified checksum file. All your downloads must be in the current directory.
+Verify the that the SHA256 sum of your downloads matches the SHA256 sum in the
+verified checksum file. All the downloaded files must be in the current
+directory.
 
 === "Linux"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.33.6/assets/chezmoi.io/docs/links/links.yaml 
new/chezmoi-2.34.0/assets/chezmoi.io/docs/links/links.yaml
--- old/chezmoi-2.33.6/assets/chezmoi.io/docs/links/links.yaml  2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/assets/chezmoi.io/docs/links/links.yaml  2023-06-05 
00:19:01.000000000 +0200
@@ -357,7 +357,7 @@
   version: 2.24.0
   title: 'Shit Hot Dotfiles'
   url: https://kolv.in/posts/dotfile-managment
-- data: '2022-12-15'
+- date: '2022-12-15'
   version: 2.27.3
   title: 'Archivos de configuración fácil con chezmoi'
   lang: ES
@@ -407,6 +407,16 @@
   version: 2.32.0
   title: 'Automating the Setup of a New Mac With All Your Apps, Preferences, 
and Development Tools'
   url: 
https://www.moncefbelyamani.com/automating-the-setup-of-a-new-mac-with-all-your-apps-preferences-and-development-tools/
+- date: '2023-03-25'
+  version: 2.33.0
+  title: 'chezmoi, 세상 편리하게 dotfile 관리하기'
+  lang: KR
+  url: 'https://songkg7.github.io/posts/chezmoi-awesome-dotfile-manager/'
+- date: '2023-04-08'
+  version: 2.33.1
+  title: 'chezmoi, 본격적으로 활용하기'
+  lang: KR
+  url: 'https://songkg7.github.io/posts/chezmoi-basic-settings/'
 - date: '2023-04-15'
   version: 2.33.1
   title: 'dotfiles の管理に chezmoi を導入して fswatch で自動 
apply できるようにしたg'
@@ -421,3 +431,16 @@
   title: 'chezmoi 
のテンプレート機能を使ってシェルの起動を高速化する'
   lang: JP
   url: https://blog.mono0x.net/2023/04/29/optimize-rcfiles-using-chezmoi/
+- date: '2023-05-16'
+  version: 2.33.6
+  title: 'chezmoi'
+  lang: JP
+  url: 'https://www.ebiyuu.com/dotfiles/chezmoi/'
+- date: '2023-05-22'
+  version: 2.33.6
+  formats:
+  - audio
+  - text
+  title: '491 - Tres herramientas que han revolucionado mi terminal Linux'
+  lang: ES
+  url: 
https://atareao.es/podcast/tres-herramientas-que-han-revolucionado-mi-terminal-linux/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.33.6/assets/chezmoi.io/docs/links/related-software.md 
new/chezmoi-2.34.0/assets/chezmoi.io/docs/links/related-software.md
--- old/chezmoi-2.33.6/assets/chezmoi.io/docs/links/related-software.md 
2023-05-15 19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/assets/chezmoi.io/docs/links/related-software.md 
2023-06-05 00:19:01.000000000 +0200
@@ -17,6 +17,10 @@
 
 ## Other
 
+### [`atuin.sh`](https://atuin.sh/)
+
+Sync, search and backup shell history .
+
 ### 
[`github.com/hussainweb/ansible-role-chezmoi`](https://github.com/hussainweb/ansible-role-chezmoi)
 
 Installs chezmoi on Ubuntu and Debian servers.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.33.6/assets/chezmoi.io/docs/reference/special-files-and-directories/chezmoidata-format.md
 
new/chezmoi-2.34.0/assets/chezmoi.io/docs/reference/special-files-and-directories/chezmoidata-format.md
--- 
old/chezmoi-2.33.6/assets/chezmoi.io/docs/reference/special-files-and-directories/chezmoidata-format.md
     2023-05-15 19:36:14.000000000 +0200
+++ 
new/chezmoi-2.34.0/assets/chezmoi.io/docs/reference/special-files-and-directories/chezmoidata-format.md
     2023-06-05 00:19:01.000000000 +0200
@@ -1,7 +1,10 @@
-# `.chezmoidata.$FORMAT`
+# `.chezmoidata` and `.chezmoidata.$FORMAT`
 
 If a file called `.chezmoidata.$FORMAT` exists in the source state, it is
-interpreted as template data.
+interpreted as template data in the given format.
+
+If a directory called `.chezmoidata` exists in the source state, then all files
+in it are interpreted as template data in the format given by their extension.
 
 !!! example
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.33.6/assets/chezmoi.io/docs/user-guide/frequently-asked-questions/usage.md
 
new/chezmoi-2.34.0/assets/chezmoi.io/docs/user-guide/frequently-asked-questions/usage.md
--- 
old/chezmoi-2.33.6/assets/chezmoi.io/docs/user-guide/frequently-asked-questions/usage.md
    2023-05-15 19:36:14.000000000 +0200
+++ 
new/chezmoi-2.34.0/assets/chezmoi.io/docs/user-guide/frequently-asked-questions/usage.md
    2023-06-05 00:19:01.000000000 +0200
@@ -81,14 +81,19 @@
 state, target state, and destination state. Copy the changes you want to keep 
in
 to the source state.
 
-## Can I store/share my shell history with chezmoi?
+## Can I use chezmoi to manage my shell history across multiple machines?
 
-Not easily. chezmoi's only shared state between machines is your git repo, and
-creating a commit every time a command is entered would quickly become
-cumbersome.
 
-Instead, consider using a tool like [atuin](https://github.com/ellie/atuin). 
You
-can use chezmoi to install and configure atuin on new machines.
+No. Every change in a file managed by chezmoi requires an explicit command to
+record it (e.g. `chezmoi add`) or apply it somewhere else (e.g. `chezmoi
+update`), and is recorded as a commit in your dotfiles repository. Creating a
+commit every time a command is entered would quickly become cumbersome. This
+makes chezmoi unsuitable for sharing changes to rapidly-changing files like
+shell histories.
+
+Instead, consider using a dedicated tool for sharing shell history across
+multiple machines, like [`atuin`](https://atuin.sh/). You can use chezmoi to
+install and configure atuin.
 
 ## How do I install pre-requisites for templates?
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/assets/docker/fedora.Dockerfile 
new/chezmoi-2.34.0/assets/docker/fedora.Dockerfile
--- old/chezmoi-2.33.6/assets/docker/fedora.Dockerfile  2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/assets/docker/fedora.Dockerfile  2023-06-05 
00:19:01.000000000 +0200
@@ -1,5 +1,7 @@
 FROM fedora:latest
 
+ENV GOPROXY=https://proxy.golang.org/
+
 RUN dnf update -y && \
     dnf install -y bzip2 git gnupg golang
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/assets/scripts/install-local-bin.sh 
new/chezmoi-2.34.0/assets/scripts/install-local-bin.sh
--- old/chezmoi-2.33.6/assets/scripts/install-local-bin.sh      1970-01-01 
01:00:00.000000000 +0100
+++ new/chezmoi-2.34.0/assets/scripts/install-local-bin.sh      2023-06-05 
00:19:01.000000000 +0200
@@ -0,0 +1,357 @@
+#!/bin/sh
+
+# chezmoi install script
+# contains code from and inspired by
+# https://github.com/client9/shlib
+# https://github.com/goreleaser/godownloader
+
+set -e
+
+BINDIR="${BINDIR:-.local/bin}"
+CHEZMOI_USER_REPO="${CHEZMOI_USER_REPO:-twpayne/chezmoi}"
+TAGARG=latest
+LOG_LEVEL=2
+
+GITHUB_DOWNLOAD="https://github.com/${CHEZMOI_USER_REPO}/releases/download";
+
+tmpdir="$(mktemp -d)"
+trap 'rm -rf -- "${tmpdir}"' EXIT
+trap 'exit' INT TERM
+
+usage() {
+       this="${1}"
+       cat <<EOF
+${this}: download chezmoi and optionally run chezmoi
+
+Usage: ${this} [-b bindir] [-d] [-t tag] [chezmoi-args]
+  -b sets the installation directory, default is ${BINDIR}.
+  -d enables debug logging.
+  -t sets the tag, default is ${TAG}.
+If chezmoi-args are given, after install chezmoi is executed with chezmoi-args.
+EOF
+       exit 2
+}
+
+main() {
+       parse_args "${@}"
+       shift "$((OPTIND - 1))"
+
+       GOOS="$(get_goos)"
+       GOARCH="$(get_goarch)"
+       check_goos_goarch "${GOOS}/${GOARCH}"
+
+       TAG="$(real_tag "${TAGARG}")"
+       VERSION="${TAG#v}"
+
+       log_info "found version ${VERSION} for ${TAGARG}/${GOOS}/${GOARCH}"
+
+       BINSUFFIX=
+       FORMAT=tar.gz
+       GOOS_EXTRA=
+       case "${GOOS}" in
+       linux)
+               case "${GOARCH}" in
+               amd64)
+                       case "$(get_libc)" in
+                       glibc)
+                               GOOS_EXTRA="-glibc"
+                               ;;
+                       musl)
+                               GOOS_EXTRA="-musl"
+                               ;;
+                       esac
+                       ;;
+               esac
+               ;;
+       windows)
+               BINSUFFIX=.exe
+               FORMAT=zip
+               ;;
+       esac
+       case "${GOARCH}" in
+       386) arch=i386 ;;
+       *) arch="${GOARCH}" ;;
+       esac
+
+       # download tarball
+       NAME="chezmoi_${VERSION}_${GOOS}${GOOS_EXTRA}_${arch}"
+       TARBALL="${NAME}.${FORMAT}"
+       TARBALL_URL="${GITHUB_DOWNLOAD}/${TAG}/${TARBALL}"
+       http_download "${tmpdir}/${TARBALL}" "${TARBALL_URL}" || exit 1
+
+       # download checksums
+       CHECKSUMS="chezmoi_${VERSION}_checksums.txt"
+       CHECKSUMS_URL="${GITHUB_DOWNLOAD}/${TAG}/${CHECKSUMS}"
+       http_download "${tmpdir}/${CHECKSUMS}" "${CHECKSUMS_URL}" || exit 1
+
+       # verify checksums
+       hash_sha256_verify "${tmpdir}/${TARBALL}" "${tmpdir}/${CHECKSUMS}"
+
+       (cd -- "${tmpdir}" && untar "${TARBALL}")
+
+       # install binary
+       if [ ! -d "${BINDIR}" ]; then
+               install -d "${BINDIR}"
+       fi
+       BINARY="chezmoi${BINSUFFIX}"
+       install -- "${tmpdir}/${BINARY}" "${BINDIR}/"
+       log_info "installed ${BINDIR}/${BINARY}"
+
+       if [ -n "${1+n}" ]; then
+               exec "${BINDIR}/${BINARY}" "${@}"
+       fi
+}
+
+parse_args() {
+       while getopts "b:dh?t:" arg; do
+               case "${arg}" in
+               b) BINDIR="${OPTARG}" ;;
+               d) LOG_LEVEL=3 ;;
+               h | \?) usage "${0}" ;;
+               t) TAGARG="${OPTARG}" ;;
+               *) return 1 ;;
+               esac
+       done
+}
+
+get_goos() {
+       os="$(uname -s | tr '[:upper:]' '[:lower:]')"
+       case "${os}" in
+       cygwin_nt*) goos="windows" ;;
+       mingw*) goos="windows" ;;
+       msys_nt*) goos="windows" ;;
+       sunos*)
+               kernel="$(uname -o | tr '[:upper:]' '[:lower:]')"
+               case "${kernel}" in
+               illumos*) goos="illumos" ;;
+               solaris*) goos="solaris" ;;
+               *) goos="${os}" ;;
+               esac
+               ;;
+       *) goos="${os}" ;;
+       esac
+       printf '%s' "${goos}"
+}
+
+get_goarch() {
+       arch="$(uname -m)"
+       case "${arch}" in
+       aarch64) goarch="arm64" ;;
+       armv*) goarch="arm" ;;
+       i386) goarch="386" ;;
+       i686) goarch="386" ;;
+       i86pc) goarch="amd64" ;;
+       x86) goarch="386" ;;
+       x86_64) goarch="amd64" ;;
+       *) goarch="${arch}" ;;
+       esac
+       printf '%s' "${goarch}"
+}
+
+check_goos_goarch() {
+       case "${1}" in
+       darwin/amd64) return 0 ;;
+       darwin/arm64) return 0 ;;
+       freebsd/386) return 0 ;;
+       freebsd/amd64) return 0 ;;
+       freebsd/arm) return 0 ;;
+       freebsd/arm64) return 0 ;;
+       freebsd/riscv64) return 0 ;;
+       illumos/amd64) return 0 ;;
+       linux/386) return 0 ;;
+       linux/amd64) return 0 ;;
+       linux/arm) return 0 ;;
+       linux/arm64) return 0 ;;
+       linux/loong64) return 0 ;;
+       linux/mips64) return 0 ;;
+       linux/mips64le) return 0 ;;
+       linux/ppc64) return 0 ;;
+       linux/ppc64le) return 0 ;;
+       linux/riscv64) return 0 ;;
+       linux/s390x) return 0 ;;
+       openbsd/386) return 0 ;;
+       openbsd/amd64) return 0 ;;
+       openbsd/arm) return 0 ;;
+       openbsd/arm64) return 0 ;;
+       openbsd/mips64) return 0 ;;
+       solaris/amd64) return 0 ;;
+       windows/386) return 0 ;;
+       windows/amd64) return 0 ;;
+       windows/arm) return 0 ;;
+       *)
+               printf '%s: unsupported platform\n' "${1}" 1>&2
+               return 1
+               ;;
+       esac
+}
+
+get_libc() {
+       if is_command ldd; then
+               case "$(ldd --version 2>&1 | tr '[:upper:]' '[:lower:]')" in
+               *glibc* | *"gnu libc"*)
+                       printf glibc
+                       return
+                       ;;
+               *musl*)
+                       printf musl
+                       return
+                       ;;
+               esac
+       fi
+       if is_command getconf; then
+               case "$(getconf GNU_LIBC_VERSION 2>&1)" in
+               *glibc*)
+                       printf glibc
+                       return
+                       ;;
+               esac
+       fi
+       log_crit "unable to determine libc" 1>&2
+       exit 1
+}
+
+real_tag() {
+       tag="${1}"
+       log_debug "checking GitHub for tag ${tag}"
+       release_url="https://github.com/${CHEZMOI_USER_REPO}/releases/${tag}";
+       json="$(http_get "${release_url}" "Accept: application/json")"
+       if [ -z "${json}" ]; then
+               log_err "real_tag error retrieving GitHub release ${tag}"
+               return 1
+       fi
+       real_tag="$(printf '%s\n' "${json}" | tr -s '\n' ' ' | sed 
's/.*"tag_name":"//' | sed 's/".*//')"
+       if [ -z "${real_tag}" ]; then
+               log_err "real_tag error determining real tag of GitHub release 
${tag}"
+               return 1
+       fi
+       if [ -z "${real_tag}" ]; then
+               return 1
+       fi
+       log_debug "found tag ${real_tag} for ${tag}"
+       printf '%s' "${real_tag}"
+}
+
+http_get() {
+       tmpfile="$(mktemp)"
+       http_download "${tmpfile}" "${1}" "${2}" || return 1
+       body="$(cat "${tmpfile}")"
+       rm -f "${tmpfile}"
+       printf '%s\n' "${body}"
+}
+
+http_download_curl() {
+       local_file="${1}"
+       source_url="${2}"
+       header="${3}"
+       if [ -z "${header}" ]; then
+               code="$(curl -w '%{http_code}' -sL -o "${local_file}" 
"${source_url}")"
+       else
+               code="$(curl -w '%{http_code}' -sL -H "${header}" -o 
"${local_file}" "${source_url}")"
+       fi
+       if [ "${code}" != "200" ]; then
+               log_debug "http_download_curl received HTTP status ${code}"
+               return 1
+       fi
+       return 0
+}
+
+http_download_wget() {
+       local_file="${1}"
+       source_url="${2}"
+       header="${3}"
+       if [ -z "${header}" ]; then
+               wget -q -O "${local_file}" "${source_url}" || return 1
+       else
+               wget -q --header "${header}" -O "${local_file}" "${source_url}" 
|| return 1
+       fi
+}
+
+http_download() {
+       log_debug "http_download ${2}"
+       if is_command curl; then
+               http_download_curl "${@}" || return 1
+               return
+       elif is_command wget; then
+               http_download_wget "${@}" || return 1
+               return
+       fi
+       log_crit "http_download unable to find wget or curl"
+       return 1
+}
+
+hash_sha256() {
+       target="${1}"
+       if is_command sha256sum; then
+               hash="$(sha256sum "${target}")" || return 1
+               printf '%s' "${hash}" | cut -d ' ' -f 1
+       elif is_command shasum; then
+               hash="$(shasum -a 256 "${target}" 2>/dev/null)" || return 1
+               printf '%s' "${hash}" | cut -d ' ' -f 1
+       elif is_command sha256; then
+               hash="$(sha256 -q "${target}" 2>/dev/null)" || return 1
+               printf '%s' "${hash}" | cut -d ' ' -f 1
+       elif is_command openssl; then
+               hash="$(openssl dgst -sha256 "${target}")" || return 1
+               printf '%s' "${hash}" | cut -d ' ' -f a
+       else
+               log_crit "hash_sha256 unable to find command to compute SHA256 
hash"
+               return 1
+       fi
+}
+
+hash_sha256_verify() {
+       target="${1}"
+       checksums="${2}"
+       basename="${target##*/}"
+
+       want="$(grep "${basename}" "${checksums}" 2>/dev/null | tr '\t' ' ' | 
cut -d ' ' -f 1)"
+       if [ -z "${want}" ]; then
+               log_err "hash_sha256_verify unable to find checksum for 
${target} in ${checksums}"
+               return 1
+       fi
+
+       got="$(hash_sha256 "${target}")"
+       if [ "${want}" != "${got}" ]; then
+               log_err "hash_sha256_verify checksum for ${target} did not 
verify ${want} vs ${got}"
+               return 1
+       fi
+}
+
+untar() {
+       tarball="${1}"
+       case "${tarball}" in
+       *.tar.gz | *.tgz) tar -xzf "${tarball}" ;;
+       *.tar) tar -xf "${tarball}" ;;
+       *.zip) unzip -- "${tarball}" ;;
+       *)
+               log_err "untar unknown archive format for ${tarball}"
+               return 1
+               ;;
+       esac
+}
+
+is_command() {
+       type "${1}" >/dev/null 2>&1
+}
+
+log_debug() {
+       [ 3 -le "${LOG_LEVEL}" ] || return 0
+       printf 'debug %s\n' "${*}" 1>&2
+}
+
+log_info() {
+       [ 2 -le "${LOG_LEVEL}" ] || return 0
+       printf 'info %s\n' "${*}" 1>&2
+}
+
+log_err() {
+       [ 1 -le "${LOG_LEVEL}" ] || return 0
+       printf 'error %s\n' "${*}" 1>&2
+}
+
+log_crit() {
+       [ 0 -le "${LOG_LEVEL}" ] || return 0
+       printf 'critical %s\n' "${*}" 1>&2
+}
+
+main "${@}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/go.mod new/chezmoi-2.34.0/go.mod
--- old/chezmoi-2.33.6/go.mod   2023-05-15 19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/go.mod   2023-06-05 00:19:01.000000000 +0200
@@ -9,7 +9,7 @@
        github.com/alecthomas/assert/v2 v2.2.2
        github.com/aws/aws-sdk-go-v2 v1.18.0
        github.com/aws/aws-sdk-go-v2/config v1.18.25
-       github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.19.7
+       github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.19.8
        github.com/bmatcuk/doublestar/v4 v4.6.0
        github.com/bradenhilton/mozillainstallhash v1.0.1
        github.com/charmbracelet/bubbles v0.15.0
@@ -17,16 +17,16 @@
        github.com/charmbracelet/glamour v0.6.0
        github.com/coreos/go-semver v0.3.1
        github.com/fsnotify/fsnotify v1.6.0
-       github.com/go-git/go-git/v5 v5.6.1
+       github.com/go-git/go-git/v5 v5.7.0
        github.com/google/go-github/v52 v52.0.0
        github.com/google/renameio/v2 v2.0.0
        github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79
-       github.com/itchyny/gojq v0.12.12
+       github.com/itchyny/gojq v0.12.13
        github.com/klauspost/compress v1.16.5
        github.com/mitchellh/mapstructure v1.5.0
        github.com/muesli/combinator v0.3.0
        github.com/muesli/termenv v0.15.1
-       github.com/pelletier/go-toml/v2 v2.0.7
+       github.com/pelletier/go-toml/v2 v2.0.8
        github.com/rogpeppe/go-internal v1.10.0
        github.com/rs/zerolog v1.29.1
        github.com/sergi/go-diff v1.1.0
@@ -38,11 +38,11 @@
        github.com/twpayne/go-xdg/v6 v6.1.1
        github.com/ulikunitz/xz v0.5.11
        github.com/withfig/autocomplete-tools/integrations/cobra v1.2.1
-       github.com/zalando/go-keyring v0.2.2
+       github.com/zalando/go-keyring v0.2.3
        go.etcd.io/bbolt v1.3.7
        go.uber.org/multierr v1.11.0
        golang.org/x/crypto v0.9.0
-       golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea
+       golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1
        golang.org/x/oauth2 v0.8.0
        golang.org/x/sync v0.2.0
        golang.org/x/sys v0.8.0
@@ -57,7 +57,7 @@
        github.com/Masterminds/goutils v1.1.1 // indirect
        github.com/Masterminds/semver/v3 v3.2.1 // indirect
        github.com/Microsoft/go-winio v0.6.1 // indirect
-       github.com/ProtonMail/go-crypto v0.0.0-20230426101702-58e86b294756 // 
indirect
+       github.com/ProtonMail/go-crypto v0.0.0-20230528122434-6f98819771a1 // 
indirect
        github.com/acomagu/bufpipe v1.0.4 // indirect
        github.com/alecthomas/chroma v0.10.0 // indirect
        github.com/alecthomas/repr v0.2.0 // indirect
@@ -84,9 +84,10 @@
        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
-       github.com/go-git/gcfg v1.5.0 // indirect
+       github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
        github.com/go-git/go-billy/v5 v5.4.1 // indirect
        github.com/godbus/dbus/v5 v5.1.0 // indirect
+       github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // 
indirect
        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
@@ -94,17 +95,17 @@
        github.com/gorilla/css v1.0.0 // indirect
        github.com/hexops/gotextdiff v1.0.3 // indirect
        github.com/huandu/xstrings v1.4.0 // indirect
-       github.com/imdario/mergo v0.3.15 // indirect
+       github.com/imdario/mergo v0.3.16 // indirect
        github.com/inconshreveable/mousetrap v1.1.0 // indirect
        github.com/itchyny/timefmt-go v0.1.5 // indirect
        github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // 
indirect
        github.com/kevinburke/ssh_config v1.2.0 // indirect
        github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
        github.com/mattn/go-colorable v0.1.13 // indirect
-       github.com/mattn/go-isatty v0.0.18 // indirect
+       github.com/mattn/go-isatty v0.0.19 // indirect
        github.com/mattn/go-localereader v0.0.1 // indirect
        github.com/mattn/go-runewidth v0.0.14 // indirect
-       github.com/microcosm-cc/bluemonday v1.0.23 // indirect
+       github.com/microcosm-cc/bluemonday v1.0.24 // indirect
        github.com/mitchellh/copystructure v1.2.0 // indirect
        github.com/mitchellh/reflectwalk v1.0.2 // indirect
        github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
@@ -118,21 +119,23 @@
        github.com/shopspring/decimal v1.3.1 // indirect
        github.com/skeema/knownhosts v1.1.1 // indirect
        github.com/spf13/cast v1.5.1 // indirect
-       github.com/stretchr/testify v1.8.2 // indirect
        github.com/xanzy/ssh-agent v0.3.3 // indirect
        github.com/yuin/goldmark v1.5.4 // indirect
        github.com/yuin/goldmark-emoji v1.0.1 // indirect
        golang.org/x/mod v0.10.0 // indirect
        golang.org/x/net v0.10.0 // indirect
        golang.org/x/text v0.9.0 // indirect
-       golang.org/x/tools v0.9.1 // indirect
+       golang.org/x/tools v0.9.3 // indirect
        google.golang.org/appengine v1.6.7 // indirect
        google.golang.org/protobuf v1.30.0 // indirect
        gopkg.in/warnings.v0 v0.1.2 // indirect
 )
 
 exclude (
+       github.com/charmbracelet/bubbles v0.16.0 // 
https://github.com/charmbracelet/bubbletea/issues/737
+       github.com/charmbracelet/bubbles v0.16.1 // 
https://github.com/charmbracelet/bubbletea/issues/737
        github.com/charmbracelet/bubbletea v0.24.0 // 
https://github.com/charmbracelet/bubbletea/issues/737
+       github.com/charmbracelet/bubbletea v0.24.1 // 
https://github.com/charmbracelet/bubbletea/issues/737
        github.com/sergi/go-diff v1.2.0 // 
https://github.com/sergi/go-diff/issues/123
        github.com/sergi/go-diff v1.3.0
        github.com/sergi/go-diff v1.3.1 // 
https://github.com/twpayne/chezmoi/issues/2706
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/go.sum new/chezmoi-2.34.0/go.sum
--- old/chezmoi-2.33.6/go.sum   2023-05-15 19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/go.sum   2023-06-05 00:19:01.000000000 +0200
@@ -12,9 +12,8 @@
 github.com/Microsoft/go-winio v0.5.2/go.mod 
h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
 github.com/Microsoft/go-winio v0.6.1 
h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
 github.com/Microsoft/go-winio v0.6.1/go.mod 
h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
-github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8/go.mod 
h1:I0gYDMZ6Z5GRU7l58bNFSkPTFN6Yl12dsUlAZ8xy98g=
-github.com/ProtonMail/go-crypto v0.0.0-20230426101702-58e86b294756 
h1:L6S7kR7SlhQKplIBpkra3s6yhcZV51lhRnXmYc4HohI=
-github.com/ProtonMail/go-crypto v0.0.0-20230426101702-58e86b294756/go.mod 
h1:8TI4H3IbrackdNgv+92dI+rhpCaLqM0IfpgCgenFvRE=
+github.com/ProtonMail/go-crypto v0.0.0-20230528122434-6f98819771a1 
h1:JMDGhoQvXNTqH6Y3MC0IUw6tcZvaUdujNqzK2HYWZc8=
+github.com/ProtonMail/go-crypto v0.0.0-20230528122434-6f98819771a1/go.mod 
h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
 github.com/Shopify/ejson v1.4.0 h1:RvvWSOjDdInbMNtR97eJ5GEd6njjDNSbvbFHoQjJAXo=
 github.com/Shopify/ejson v1.4.0/go.mod 
h1:VZMUtDzvBW/PAXRUF5fzp1ffb1ucT8MztrZXXLYZurw=
 github.com/acomagu/bufpipe v1.0.4 
h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ=
@@ -28,9 +27,7 @@
 github.com/alessio/shellescape v1.4.1 
h1:V7yhSDDn8LP4lc4jS8pFkt0zCnzVJlG5JXy9BVKJUX0=
 github.com/alessio/shellescape v1.4.1/go.mod 
h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30=
 github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be 
h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
-github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod 
h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
 github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 
h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
-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.18.0 
h1:882kkTpSFhdgYRKVZ/VCgf7sd0ru57p2JCxz4/oN5RY=
@@ -49,8 +46,8 @@
 github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34/go.mod 
h1:Etz2dj6UHYuw+Xw830KfzCfWGMzqvUTCjUj5b76GVDc=
 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27 
h1:0iKliEXAcCa2qVtRs7Ot5hItA2MsufrphbRFlz1Owxo=
 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27/go.mod 
h1:EOwBD4J4S5qYszS5/3DpkejfuK+Z5/1uzICfPaZLtqw=
-github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.19.7 
h1:W88E2kZGo+NHOsyvQbsOZYqxXJdLIqRzKadeVlv5J7k=
-github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.19.7/go.mod 
h1:3ARttS6G6U3auEdKfaN4GlnfS9UxYE9nqub1+0YGycA=
+github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.19.8 
h1:eB91eEYUlh8+O2dXr189W8GJJd+/T8N/c5HocH2KzVo=
+github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.19.8/go.mod 
h1:3ARttS6G6U3auEdKfaN4GlnfS9UxYE9nqub1+0YGycA=
 github.com/aws/aws-sdk-go-v2/service/sso v1.12.10 
h1:UBQjaMTCKwyUYwiVnUt6toEJwGXsLBI6al083tpjJzY=
 github.com/aws/aws-sdk-go-v2/service/sso v1.12.10/go.mod 
h1:ouy2P4z6sJN70fR3ka3wD3Ro3KezSxU6eKGQI2+2fjI=
 github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.10 
h1:PkHIIJs8qvq0e5QybnZoG1K/9QTrLr9OsqCIo59jOBA=
@@ -72,8 +69,8 @@
 github.com/bradenhilton/cityhash v1.0.0/go.mod 
h1:Wmb8yW1egA9ulrsRX4mxfYx5zq4nBWOCZ+j63oK6uz8=
 github.com/bradenhilton/mozillainstallhash v1.0.1 
h1:JVAVsItiWlLoudJX4L+tIuml+hoxjlzCwkhlENi9yS4=
 github.com/bradenhilton/mozillainstallhash v1.0.1/go.mod 
h1:J6cA36kUZrgaTkDl2bHRqI+4i2UKO1ImDB1P1x1PyOA=
-github.com/bwesterb/go-ristretto v1.2.0/go.mod 
h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
 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.15.0 
h1:c5vZ3woHV5W2b8YZI1q7v4ZNQaPetfHuoHzx+56Z6TI=
 github.com/charmbracelet/bubbles v0.15.0/go.mod 
h1:Y7gSFbBzlMpUDR/XM9MhZI374Q+1p1kluf1uLl8iK74=
 github.com/charmbracelet/bubbletea v0.23.1/go.mod 
h1:JAfGK/3/pPKHTnAS8JIE2u9f61BjWTQY57RbT25aMXU=
@@ -86,7 +83,6 @@
 github.com/charmbracelet/lipgloss v0.6.0/go.mod 
h1:tHh2wr34xcHjC2HCXIlGSG1jaDF0S0atAUvBMP6Ppuk=
 github.com/charmbracelet/lipgloss v0.7.1 
h1:17WMwi7N1b1rVWOjMT+rCh7sQkvDU75B2hbZpc5Kc1E=
 github.com/charmbracelet/lipgloss v0.7.1/go.mod 
h1:yG0k3giv8Qj8edTCbbg6AlQ5e8KNWpFujkNawKNhE2c=
-github.com/cloudflare/circl v1.1.0/go.mod 
h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I=
 github.com/cloudflare/circl v1.3.3 
h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs=
 github.com/cloudflare/circl v1.3.3/go.mod 
h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
 github.com/containerd/console v1.0.3 
h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw=
@@ -109,25 +105,25 @@
 github.com/dlclark/regexp2 v1.10.0/go.mod 
h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
 github.com/dustin/gojson v0.0.0-20160307161227-2e71ec9dd5ad 
h1:Qk76DOWdOp+GlyDKBAG3Klr9cn7N+LcYc82AZ2S7+cA=
 github.com/dustin/gojson v0.0.0-20160307161227-2e71ec9dd5ad/go.mod 
h1:mPKfmRa823oBIgl2r20LeMSpTAteW5j7FLkc0vjmzyQ=
+github.com/elazarl/goproxy v0.0.0-20221015165544-a0805db90819 
h1:RIB4cRk+lBqKK3Oy0r2gRX4ui7tuhiZq2SuTtTCi0/0=
 github.com/emirpasic/gods v1.18.1 
h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
 github.com/emirpasic/gods v1.18.1/go.mod 
h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
 github.com/frankban/quicktest v1.14.4 
h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY=
 github.com/fsnotify/fsnotify v1.6.0 
h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
 github.com/fsnotify/fsnotify v1.6.0/go.mod 
h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
 github.com/gliderlabs/ssh v0.3.5 
h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY=
-github.com/gliderlabs/ssh v0.3.5/go.mod 
h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4=
-github.com/go-git/gcfg v1.5.0 h1:Q5ViNfGF8zFgyJWPqYwA7qGFoMTEiBmdlkcfRmpIMa4=
-github.com/go-git/gcfg v1.5.0/go.mod 
h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E=
-github.com/go-git/go-billy/v5 v5.3.1/go.mod 
h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0=
+github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 
h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
+github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod 
h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
 github.com/go-git/go-billy/v5 v5.4.1 
h1:Uwp5tDRkPr+l/TnbHOQzp+tmJfLceOlbVucgpTz8ix4=
 github.com/go-git/go-billy/v5 v5.4.1/go.mod 
h1:vjbugF6Fz7JIflbVpl1hJsGjSHNltrSw45YK/ukIvQg=
-github.com/go-git/go-git-fixtures/v4 v4.3.1 
h1:y5z6dd3qi8Hl+stezc8p3JxDkoTRqMAlKnXHuzrfjTQ=
-github.com/go-git/go-git-fixtures/v4 v4.3.1/go.mod 
h1:8LHG1a3SRW71ettAD/jW13h8c6AqjVSeL11RAdgaqpo=
-github.com/go-git/go-git/v5 v5.6.1 
h1:q4ZRqQl4pR/ZJHc1L5CFjGA1a10u76aV1iC+nh+bHsk=
-github.com/go-git/go-git/v5 v5.6.1/go.mod 
h1:mvyoL6Unz0PiTQrGQfSfiLFhBH1c1e84ylC2MDs4ee8=
+github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20230305113008-0c11038e723f 
h1:Pz0DHeFij3XFhoBRGUDPzSJ+w2UcK5/0JvF8DRI58r8=
+github.com/go-git/go-git/v5 v5.7.0 
h1:t9AudWVLmqzlo+4bqdf7GY+46SUuRsx59SboFxkq2aE=
+github.com/go-git/go-git/v5 v5.7.0/go.mod 
h1:coJHKEOk5kUClpsNlXrUvPrDxY3w3gjHvhcZd8Fodw8=
 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=
+github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da 
h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
+github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod 
h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
 github.com/golang/protobuf v1.3.1/go.mod 
h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.5.0/go.mod 
h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
@@ -139,7 +135,6 @@
 github.com/google/go-cmp v0.5.5/go.mod 
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/go-cmp v0.5.8/go.mod 
h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
-github.com/google/go-cmp v0.5.9/go.mod 
h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/go-github/v52 v52.0.0 
h1:uyGWOY+jMQ8GVGSX8dkSwCzlehU3WfdxQ7GweO/JP7M=
 github.com/google/go-github/v52 v52.0.0/go.mod 
h1:WJV6VEEUPuMo5pXqqa2ZCZEdbQqua4zAk2MZTIo+m+4=
 github.com/google/go-querystring v1.1.0 
h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
@@ -160,20 +155,18 @@
 github.com/huandu/xstrings v1.4.0 
h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU=
 github.com/huandu/xstrings v1.4.0/go.mod 
h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
 github.com/imdario/mergo v0.3.11/go.mod 
h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
-github.com/imdario/mergo v0.3.13/go.mod 
h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg=
-github.com/imdario/mergo v0.3.15 
h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM=
-github.com/imdario/mergo v0.3.15/go.mod 
h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
+github.com/imdario/mergo v0.3.16 
h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
+github.com/imdario/mergo v0.3.16/go.mod 
h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
 github.com/inconshreveable/mousetrap v1.1.0 
h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
 github.com/inconshreveable/mousetrap v1.1.0/go.mod 
h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
-github.com/itchyny/gojq v0.12.12 
h1:x+xGI9BXqKoJQZkr95ibpe3cdrTbY8D9lonrK433rcA=
-github.com/itchyny/gojq v0.12.12/go.mod 
h1:j+3sVkjxwd7A7Z5jrbKibgOLn0ZfLWkV+Awxr/pyzJE=
+github.com/itchyny/gojq v0.12.13 
h1:IxyYlHYIlspQHHTE0f3cJF0NKDMfajxViuhBLnHd/QU=
+github.com/itchyny/gojq v0.12.13/go.mod 
h1:JzwzAqenfhrPUuwbmEz3nu3JQmFLlQTQMUcOdnu/Sf4=
 github.com/itchyny/timefmt-go v0.1.5 
h1:G0INE2la8S6ru/ZI5JecgyzbbJNs5lG1RcBqa7Jm6GE=
 github.com/itchyny/timefmt-go v0.1.5/go.mod 
h1:nEP7L+2YmAbT2kZ2HfSs1d8Xtw9LY8D2stDBckWakZ8=
 github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 
h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
 github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod 
h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
 github.com/jessevdk/go-flags v1.4.0/go.mod 
h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
 github.com/jessevdk/go-flags v1.5.0 
h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc=
-github.com/jessevdk/go-flags v1.5.0/go.mod 
h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4=
 github.com/jmespath/go-jmespath v0.4.0 
h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
 github.com/jmespath/go-jmespath v0.4.0/go.mod 
h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
 github.com/jmespath/go-jmespath/internal/testify v1.5.1 
h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
@@ -203,8 +196,8 @@
 github.com/mattn/go-isatty v0.0.14/go.mod 
h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
 github.com/mattn/go-isatty v0.0.16/go.mod 
h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
 github.com/mattn/go-isatty v0.0.17/go.mod 
h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
-github.com/mattn/go-isatty v0.0.18 
h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98=
-github.com/mattn/go-isatty v0.0.18/go.mod 
h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
+github.com/mattn/go-isatty v0.0.19 
h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
+github.com/mattn/go-isatty v0.0.19/go.mod 
h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
 github.com/mattn/go-localereader v0.0.1 
h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4=
 github.com/mattn/go-localereader v0.0.1/go.mod 
h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88=
 github.com/mattn/go-runewidth v0.0.9/go.mod 
h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
@@ -214,8 +207,8 @@
 github.com/mattn/go-runewidth v0.0.14 
h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU=
 github.com/mattn/go-runewidth v0.0.14/go.mod 
h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
 github.com/microcosm-cc/bluemonday v1.0.21/go.mod 
h1:ytNkv4RrDrLJ2pqlsSI46O6IVXmZOBBD4SaJyDwwTkM=
-github.com/microcosm-cc/bluemonday v1.0.23 
h1:SMZe2IGa0NuHvnVNAZ+6B38gsTbi5e4sViiWJyDDqFY=
-github.com/microcosm-cc/bluemonday v1.0.23/go.mod 
h1:mN70sk7UkkF8TUr2IGBpNN0jAgStuPzlK76QuruE/z4=
+github.com/microcosm-cc/bluemonday v1.0.24 
h1:NGQoPtwGVcbGkKfvyYk1yRqknzBuoMiUrO6R7uFTPlw=
+github.com/microcosm-cc/bluemonday v1.0.24/go.mod 
h1:ArQySAMps0790cHSkdPEJ7bGkF2VePWH773hsJNSHf8=
 github.com/mitchellh/copystructure v1.0.0/go.mod 
h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
 github.com/mitchellh/copystructure v1.2.0 
h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
 github.com/mitchellh/copystructure v1.2.0/go.mod 
h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
@@ -225,7 +218,6 @@
 github.com/mitchellh/reflectwalk v1.0.2 
h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
 github.com/mitchellh/reflectwalk v1.0.2/go.mod 
h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
 github.com/mmcloughlin/avo v0.5.0 
h1:nAco9/aI9Lg2kiuROBY6BhCI/z0t5jEvJfjWbL8qXLU=
-github.com/mmcloughlin/avo v0.5.0/go.mod 
h1:ChHFdoV7ql95Wi7vuq2YT1bwCJqiWdZrQ1im3VujLYM=
 github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b/go.mod 
h1:fQuZ0gauxyBcmsdE3ZT4NasjaRdxmbCS0jRHsrWu3Ho=
 github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 
h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI=
 github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod 
h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo=
@@ -245,8 +237,8 @@
 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod 
h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
 github.com/olekukonko/tablewriter v0.0.5 
h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
 github.com/olekukonko/tablewriter v0.0.5/go.mod 
h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
-github.com/pelletier/go-toml/v2 v2.0.7 
h1:muncTPStnKRos5dpVKULv2FVd4bMOhNePj9CjgDb8Us=
-github.com/pelletier/go-toml/v2 v2.0.7/go.mod 
h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek=
+github.com/pelletier/go-toml/v2 v2.0.8 
h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
+github.com/pelletier/go-toml/v2 v2.0.8/go.mod 
h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
 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=
@@ -278,7 +270,6 @@
 github.com/shurcooL/sanitized_anchor_name v1.0.0 
h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
 github.com/sirupsen/logrus v1.7.0/go.mod 
h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
 github.com/sirupsen/logrus v1.9.0 
h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
-github.com/skeema/knownhosts v1.1.0/go.mod 
h1:sKFq3RD6/TKZkSWn8boUbDC7Qkgcv+8XXijpFO6roag=
 github.com/skeema/knownhosts v1.1.1 
h1:MTk78x9FPgDFVFkDLTrsnnfCJl7g1C/nnKvePgrIngE=
 github.com/skeema/knownhosts v1.1.1/go.mod 
h1:g4fPeYpque7P0xefxtGzV81ihjC8sX2IqpAoNkjxbMo=
 github.com/smartystreets/assertions v1.0.1 
h1:voD4ITNjPL5jjBfgR/r8fPIIBrliWrWHeiJApdr3r4w=
@@ -300,9 +291,8 @@
 github.com/stretchr/testify v1.7.0/go.mod 
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 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.8.2 
h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8=
-github.com/stretchr/testify v1.8.2/go.mod 
h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
+github.com/stretchr/testify v1.8.3 
h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY=
+github.com/stretchr/testify v1.8.3/go.mod 
h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
 github.com/tailscale/hujson v0.0.0-20221223112325-20486734a56a 
h1:SJy1Pu0eH1C29XwJucQo73FrleVK6t4kYz4NVhp34Yw=
 github.com/tailscale/hujson v0.0.0-20221223112325-20486734a56a/go.mod 
h1:DFSS3NAGHthKo1gTlmEcSBiZrRJXi28rLNd/1udP1c8=
 github.com/twpayne/go-pinentry v0.2.0 
h1:hS5NEJiilop9xP9pBX/1NYduzDlGGMdg1KamTBTrOWw=
@@ -325,31 +315,25 @@
 github.com/yuin/goldmark v1.5.4/go.mod 
h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
 github.com/yuin/goldmark-emoji v1.0.1 
h1:ctuWEyzGBwiucEqxzwe0SOYDXPAucOrE9NQC18Wa1os=
 github.com/yuin/goldmark-emoji v1.0.1/go.mod 
h1:2w1E6FEWLcDQkoTE+7HU6QF1F6SLlNGjRIBbIZQFqkQ=
-github.com/zalando/go-keyring v0.2.2 
h1:f0xmpYiSrHtSNAVgwip93Cg8tuF45HJM6rHq/A5RI/4=
-github.com/zalando/go-keyring v0.2.2/go.mod 
h1:sI3evg9Wvpw3+n4SqplGSJUMwtDeROfD4nsFz4z9PG0=
+github.com/zalando/go-keyring v0.2.3 
h1:v9CUu9phlABObO4LPWycf+zwMG7nlbb3t/B5wa97yms=
+github.com/zalando/go-keyring v0.2.3/go.mod 
h1:HL4k+OXQfJUWaMnqyuSOc0drfGPX2b51Du6K+MRgZMk=
 go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ=
 go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw=
 go.etcd.io/gofail v0.1.0 h1:XItAMIhOojXFQMgrxjnd2EIIHun/d5qL0Pf7FzVTkFg=
 go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
 go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
 go.uber.org/multierr v1.11.0/go.mod 
h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
-golang.org/x/arch v0.1.0 h1:oMxhUYsO9VsR1dcoVUjJjIGhx1LXol3989T/yZ59Xsw=
-golang.org/x/arch v0.1.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod 
h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod 
h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
-golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod 
h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod 
h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod 
h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.1.0/go.mod 
h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
 golang.org/x/crypto v0.3.0/go.mod 
h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
-golang.org/x/crypto v0.6.0/go.mod 
h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
+golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod 
h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
 golang.org/x/crypto v0.7.0/go.mod 
h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
 golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g=
 golang.org/x/crypto v0.9.0/go.mod 
h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
-golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea 
h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4=
-golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod 
h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w=
+golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 
h1:k/i9J1pBpvlfR+9QsetwPyERsqu1GIbi967PQMq3Ivc=
+golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1/go.mod 
h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w=
 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod 
h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
-golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI=
 golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
 golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk=
 golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
@@ -358,12 +342,9 @@
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod 
h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod 
h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod 
h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
-golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod 
h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
 golang.org/x/net v0.0.0-20221002022538-bcab6841153b/go.mod 
h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
-golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
 golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
 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.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
 golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
 golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
@@ -376,24 +357,19 @@
 golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220204135822-1c1b9b1eba6a/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -402,8 +378,6 @@
 golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 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.0.0-20220722155259-a9ba230a4035/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
 golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
 golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
@@ -422,10 +396,9 @@
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 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.2.0/go.mod 
h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA=
 golang.org/x/tools v0.6.0/go.mod 
h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
-golang.org/x/tools v0.9.1 h1:8WMNJAz3zrtPmnYC7ISf5dEn3MT0gY7jBJfw27yrrLo=
-golang.org/x/tools v0.9.1/go.mod 
h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
+golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM=
+golang.org/x/tools v0.9.3/go.mod 
h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
 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=
@@ -437,7 +410,6 @@
 google.golang.org/protobuf v1.30.0/go.mod 
h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c 
h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod 
h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
 gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
@@ -453,7 +425,6 @@
 gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod 
h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod 
h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 howett.net/plist v1.0.0 h1:7CrbWYbPPO/PyNy38b2EB/+gYbjCe2DXBxgtOOZbSQM=
@@ -461,5 +432,3 @@
 mvdan.cc/editorconfig v0.2.0 h1:XL+7ys6ls/RKrkUNFQvEwIvNHh+JKx8Mj1pUV5wQxQE=
 mvdan.cc/sh/v3 v3.6.0 h1:gtva4EXJ0dFNvl5bHjcUEvws+KRcDslT8VKheTYkbGU=
 mvdan.cc/sh/v3 v3.6.0/go.mod h1:U4mhtBLZ32iWhif5/lD+ygy1zrgaQhUu+XFy7C8+TTA=
-rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4=
-rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.33.6/internal/cmds/generate-install.sh/install.sh.tmpl 
new/chezmoi-2.34.0/internal/cmds/generate-install.sh/install.sh.tmpl
--- old/chezmoi-2.33.6/internal/cmds/generate-install.sh/install.sh.tmpl        
2023-05-15 19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/internal/cmds/generate-install.sh/install.sh.tmpl        
2023-06-05 00:19:01.000000000 +0200
@@ -7,7 +7,7 @@
 
 set -e
 
-BINDIR="${BINDIR:-./bin}"
+BINDIR="${BINDIR:-{{ .BinDir }}}"
 CHEZMOI_USER_REPO="${CHEZMOI_USER_REPO:-twpayne/chezmoi}"
 TAGARG=latest
 LOG_LEVEL=2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.33.6/internal/cmds/generate-install.sh/main.go 
new/chezmoi-2.34.0/internal/cmds/generate-install.sh/main.go
--- old/chezmoi-2.33.6/internal/cmds/generate-install.sh/main.go        
2023-05-15 19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/internal/cmds/generate-install.sh/main.go        
2023-06-05 00:19:01.000000000 +0200
@@ -12,7 +12,10 @@
        "gopkg.in/yaml.v3"
 )
 
-var output = flag.String("o", "", "output")
+var (
+       binDir = flag.String("b", "./bin", "binary directory")
+       output = flag.String("o", "", "output")
+)
 
 type platform struct {
        GOOS   string
@@ -128,8 +131,10 @@
                defer outputFile.Close()
        }
        return installShTemplate.ExecuteTemplate(outputFile, "install.sh.tmpl", 
struct {
+               BinDir    string
                Platforms []platform
        }{
+               BinDir:    *binDir,
                Platforms: sortedPlatforms,
        })
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/main.go new/chezmoi-2.34.0/main.go
--- old/chezmoi-2.33.6/main.go  2023-05-15 19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/main.go  2023-06-05 00:19:01.000000000 +0200
@@ -5,6 +5,7 @@
 //go:generate go run . completion powershell -o completions/chezmoi.ps1
 //go:generate go run . completion zsh -o completions/chezmoi.zsh
 //go:generate go run ./internal/cmds/generate-install.sh -o 
assets/scripts/install.sh
+//go:generate go run ./internal/cmds/generate-install.sh -b .local/bin -o 
assets/scripts/install-local-bin.sh
 
 package main
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/pkg/chezmoi/archivereadersystem.go 
new/chezmoi-2.34.0/pkg/chezmoi/archivereadersystem.go
--- old/chezmoi-2.33.6/pkg/chezmoi/archivereadersystem.go       2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/pkg/chezmoi/archivereadersystem.go       2023-06-05 
00:19:01.000000000 +0200
@@ -109,3 +109,8 @@
        }
        return "", fs.ErrNotExist
 }
+
+// UnderlyingSystem implements System.UnderlyingSystem.
+func (s *ArchiveReaderSystem) UnderlyingSystem() System {
+       return s
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/pkg/chezmoi/chezmoi.go 
new/chezmoi-2.34.0/pkg/chezmoi/chezmoi.go
--- old/chezmoi-2.33.6/pkg/chezmoi/chezmoi.go   2023-05-15 19:36:14.000000000 
+0200
+++ new/chezmoi-2.34.0/pkg/chezmoi/chezmoi.go   2023-06-05 00:19:01.000000000 
+0200
@@ -94,26 +94,27 @@
        Prefix+".toml"+TemplateSuffix,
        Prefix+".yaml"+TemplateSuffix,
        RootName,
+       VersionName,
        dataName+".json",
        dataName+".toml",
        dataName+".yaml",
-       externalName+".json",
        externalName+".json"+TemplateSuffix,
-       externalName+".toml",
+       externalName+".json",
        externalName+".toml"+TemplateSuffix,
-       externalName+".yaml",
+       externalName+".toml",
        externalName+".yaml"+TemplateSuffix,
-       ignoreName,
+       externalName+".yaml",
        ignoreName+TemplateSuffix,
-       removeName,
+       ignoreName,
        removeName+TemplateSuffix,
-       VersionName,
+       removeName,
 )
 
 // knownPrefixedDirs is a set of known dirnames with the .chezmoi prefix.
 var knownPrefixedDirs = newSet(
-       scriptsDirName,
        TemplatesDirName,
+       dataName,
+       scriptsDirName,
 )
 
 // knownTargetFiles is a set of known target files that should not be managed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/pkg/chezmoi/debugsystem.go 
new/chezmoi-2.34.0/pkg/chezmoi/debugsystem.go
--- old/chezmoi-2.33.6/pkg/chezmoi/debugsystem.go       2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/pkg/chezmoi/debugsystem.go       2023-06-05 
00:19:01.000000000 +0200
@@ -186,6 +186,11 @@
        return s.system.UnderlyingFS()
 }
 
+// UnderlyingSystem implements System.UnderlyingSystem.
+func (s *DebugSystem) UnderlyingSystem() System {
+       return s.system
+}
+
 // WriteFile implements System.WriteFile.
 func (s *DebugSystem) WriteFile(name AbsPath, data []byte, perm fs.FileMode) 
error {
        err := s.system.WriteFile(name, data, perm)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/pkg/chezmoi/dryrunsystem.go 
new/chezmoi-2.34.0/pkg/chezmoi/dryrunsystem.go
--- old/chezmoi-2.33.6/pkg/chezmoi/dryrunsystem.go      2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/pkg/chezmoi/dryrunsystem.go      2023-06-05 
00:19:01.000000000 +0200
@@ -122,6 +122,11 @@
        return s.system.UnderlyingFS()
 }
 
+// UnderlyingSystem implements System.UnderlyingSystem.
+func (s *DryRunSystem) UnderlyingSystem() System {
+       return s.system
+}
+
 // WriteFile implements System.WriteFile.
 func (s *DryRunSystem) WriteFile(AbsPath, []byte, fs.FileMode) error {
        s.setModified()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/pkg/chezmoi/dumpsystem.go 
new/chezmoi-2.34.0/pkg/chezmoi/dumpsystem.go
--- old/chezmoi-2.33.6/pkg/chezmoi/dumpsystem.go        2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/pkg/chezmoi/dumpsystem.go        2023-06-05 
00:19:01.000000000 +0200
@@ -119,6 +119,11 @@
        return nil
 }
 
+// UnderlyingSystem implements System.UnderlyingSystem.
+func (s *DumpSystem) UnderlyingSystem() System {
+       return s
+}
+
 // WriteFile implements System.WriteFile.
 func (s *DumpSystem) WriteFile(filename AbsPath, data []byte, perm 
fs.FileMode) error {
        return s.setData(filename.String(), &fileData{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/pkg/chezmoi/erroronwritesystem.go 
new/chezmoi-2.34.0/pkg/chezmoi/erroronwritesystem.go
--- old/chezmoi-2.33.6/pkg/chezmoi/erroronwritesystem.go        2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/pkg/chezmoi/erroronwritesystem.go        2023-06-05 
00:19:01.000000000 +0200
@@ -109,6 +109,11 @@
        return s.system.UnderlyingFS()
 }
 
+// UnderlyingSystem implements System.UnderlyingSystem.
+func (s *ErrorOnWriteSystem) UnderlyingSystem() System {
+       return s.system
+}
+
 // WriteFile implements System.WriteFile.
 func (s *ErrorOnWriteSystem) WriteFile(AbsPath, []byte, fs.FileMode) error {
        return s.err
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/pkg/chezmoi/externaldiffsystem.go 
new/chezmoi-2.34.0/pkg/chezmoi/externaldiffsystem.go
--- old/chezmoi-2.33.6/pkg/chezmoi/externaldiffsystem.go        2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/pkg/chezmoi/externaldiffsystem.go        2023-06-05 
00:19:01.000000000 +0200
@@ -215,6 +215,11 @@
        return s.system.UnderlyingFS()
 }
 
+// UnderlyingSystem implements System.UnderlyingSystem.
+func (s *ExternalDiffSystem) UnderlyingSystem() System {
+       return s.system
+}
+
 // WriteFile implements System.WriteFile.
 func (s *ExternalDiffSystem) WriteFile(filename AbsPath, data []byte, perm 
fs.FileMode) error {
        if s.filter.IncludeEntryTypeBits(EntryTypeFiles) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/pkg/chezmoi/gitdiffsystem.go 
new/chezmoi-2.34.0/pkg/chezmoi/gitdiffsystem.go
--- old/chezmoi-2.33.6/pkg/chezmoi/gitdiffsystem.go     2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/pkg/chezmoi/gitdiffsystem.go     2023-06-05 
00:19:01.000000000 +0200
@@ -237,6 +237,11 @@
        return s.system.UnderlyingFS()
 }
 
+// UnderlyingSystem implements System.UnderlyingSystem.
+func (s *GitDiffSystem) UnderlyingSystem() System {
+       return s.system
+}
+
 // WriteFile implements System.WriteFile.
 func (s *GitDiffSystem) WriteFile(filename AbsPath, data []byte, perm 
fs.FileMode) error {
        if s.filter.IncludeEntryTypeBits(EntryTypeFiles) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/pkg/chezmoi/nullsystem.go 
new/chezmoi-2.34.0/pkg/chezmoi/nullsystem.go
--- old/chezmoi-2.33.6/pkg/chezmoi/nullsystem.go        2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/pkg/chezmoi/nullsystem.go        2023-06-05 
00:19:01.000000000 +0200
@@ -4,3 +4,8 @@
        emptySystemMixin
        noUpdateSystemMixin
 }
+
+// UnderlyingSystem implements System.UnderlyingSystem.
+func (s *NullSystem) UnderlyingSystem() System {
+       return s
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/pkg/chezmoi/readonlysystem.go 
new/chezmoi-2.34.0/pkg/chezmoi/readonlysystem.go
--- old/chezmoi-2.33.6/pkg/chezmoi/readonlysystem.go    2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/pkg/chezmoi/readonlysystem.go    2023-06-05 
00:19:01.000000000 +0200
@@ -58,3 +58,8 @@
 func (s *ReadOnlySystem) UnderlyingFS() vfs.FS {
        return s.system.UnderlyingFS()
 }
+
+// UnderlyingSystem implements System.UnderlyingSystem.
+func (s *ReadOnlySystem) UnderlyingSystem() System {
+       return s.system
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/pkg/chezmoi/realsystem.go 
new/chezmoi-2.34.0/pkg/chezmoi/realsystem.go
--- old/chezmoi-2.33.6/pkg/chezmoi/realsystem.go        2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/pkg/chezmoi/realsystem.go        2023-06-05 
00:19:01.000000000 +0200
@@ -146,6 +146,11 @@
        return s.fileSystem
 }
 
+// UnderlyingSystem implements System.UnderlyingSystem.
+func (s *RealSystem) UnderlyingSystem() System {
+       return s
+}
+
 // getScriptWorkingDir returns the script's working directory.
 //
 // If this is a before_ script then the requested working directory may not
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/pkg/chezmoi/sourcestate.go 
new/chezmoi-2.34.0/pkg/chezmoi/sourcestate.go
--- old/chezmoi-2.33.6/pkg/chezmoi/sourcestate.go       2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/pkg/chezmoi/sourcestate.go       2023-06-05 
00:19:01.000000000 +0200
@@ -855,6 +855,11 @@
                parentSourceRelPath, sourceName := sourceRelPath.Split()
 
                switch {
+               case fileInfo.Name() == dataName:
+                       if !s.readTemplateData {
+                               return nil
+                       }
+                       return s.addTemplateDataDir(sourceAbsPath)
                case isPrefixDotFormat(fileInfo.Name(), dataName):
                        if !s.readTemplateData {
                                return nil
@@ -1273,6 +1278,43 @@
        return nil
 }
 
+// addTemplateData adds all template data in the directory sourceAbsPath to s.
+func (s *SourceState) addTemplateDataDir(sourceAbsPath AbsPath) error {
+       fileInfo, err := s.system.Stat(sourceAbsPath)
+       if err != nil {
+               return err
+       }
+       walkFunc := func(dataAbsPath AbsPath, fileInfo fs.FileInfo, err error) 
error {
+               if dataAbsPath == sourceAbsPath {
+                       return nil
+               }
+               if err == nil && fileInfo.Mode().Type() == fs.ModeSymlink {
+                       fileInfo, err = s.system.Stat(dataAbsPath)
+               }
+               switch {
+               case err != nil:
+                       return err
+               case strings.HasPrefix(fileInfo.Name(), Prefix):
+                       return fmt.Errorf("%s: not allowed in %s directory", 
dataAbsPath, dataName)
+               case strings.HasPrefix(fileInfo.Name(), ignorePrefix):
+                       if fileInfo.IsDir() {
+                               return vfs.SkipDir
+                       }
+                       return nil
+               case fileInfo.Mode().IsRegular():
+                       return s.addTemplateData(dataAbsPath)
+               case fileInfo.IsDir():
+                       return nil
+               default:
+                       return &unsupportedFileTypeError{
+                               absPath: dataAbsPath,
+                               mode:    fileInfo.Mode(),
+                       }
+               }
+       }
+       return walkSourceDir(s.system, sourceAbsPath, fileInfo, walkFunc)
+}
+
 // addTemplatesDir adds all templates in templatesDirAbsPath to s.
 func (s *SourceState) addTemplatesDir(ctx context.Context, templatesDirAbsPath 
AbsPath) error {
        walkFunc := func(ctx context.Context, templateAbsPath AbsPath, fileInfo 
fs.FileInfo, err error) error {
@@ -1286,8 +1328,8 @@
                case err != nil:
                        return err
                case strings.HasPrefix(fileInfo.Name(), Prefix):
-                       return fmt.Errorf("%s: not allowed in %s directory", 
TemplatesDirName, templateAbsPath)
-               case strings.HasPrefix(fileInfo.Name(), "."):
+                       return fmt.Errorf("%s: not allowed in %s directory", 
templateAbsPath, TemplatesDirName)
+               case strings.HasPrefix(fileInfo.Name(), ignorePrefix):
                        if fileInfo.IsDir() {
                                return vfs.SkipDir
                        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/pkg/chezmoi/system.go 
new/chezmoi-2.34.0/pkg/chezmoi/system.go
--- old/chezmoi-2.33.6/pkg/chezmoi/system.go    2023-05-15 19:36:14.000000000 
+0200
+++ new/chezmoi-2.34.0/pkg/chezmoi/system.go    2023-06-05 00:19:01.000000000 
+0200
@@ -38,6 +38,7 @@
        RunScript(scriptname RelPath, dir AbsPath, data []byte, options 
RunScriptOptions) error
        Stat(name AbsPath) (fs.FileInfo, error)
        UnderlyingFS() vfs.FS
+       UnderlyingSystem() System
        WriteFile(filename AbsPath, data []byte, perm fs.FileMode) error
        WriteSymlink(oldname string, newname AbsPath) error
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/pkg/chezmoi/tarwritersystem.go 
new/chezmoi-2.34.0/pkg/chezmoi/tarwritersystem.go
--- old/chezmoi-2.33.6/pkg/chezmoi/tarwritersystem.go   2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/pkg/chezmoi/tarwritersystem.go   2023-06-05 
00:19:01.000000000 +0200
@@ -47,6 +47,11 @@
        return s.WriteFile(NewAbsPath(scriptname.String()), data, 0o700)
 }
 
+// UnderlyingSystem implements System.UnderlyingSystem.
+func (s *TarWriterSystem) UnderlyingSystem() System {
+       return s
+}
+
 // WriteFile implements System.WriteFile.
 func (s *TarWriterSystem) WriteFile(filename AbsPath, data []byte, perm 
fs.FileMode) error {
        header := s.headerTemplate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/pkg/chezmoi/zipwritersystem.go 
new/chezmoi-2.34.0/pkg/chezmoi/zipwritersystem.go
--- old/chezmoi-2.33.6/pkg/chezmoi/zipwritersystem.go   2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/pkg/chezmoi/zipwritersystem.go   2023-06-05 
00:19:01.000000000 +0200
@@ -52,6 +52,11 @@
        return s.WriteFile(NewAbsPath(scriptname.String()), data, 0o700)
 }
 
+// UnderlyingSystem implements System.UnderlyingSystem.
+func (s *ZIPWriterSystem) UnderlyingSystem() System {
+       return s
+}
+
 // WriteFile implements System.WriteFile.
 func (s *ZIPWriterSystem) WriteFile(filename AbsPath, data []byte, perm 
fs.FileMode) error {
        fileHeader := zip.FileHeader{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/pkg/cmd/config.go 
new/chezmoi-2.34.0/pkg/cmd/config.go
--- old/chezmoi-2.33.6/pkg/cmd/config.go        2023-05-15 19:36:14.000000000 
+0200
+++ new/chezmoi-2.34.0/pkg/cmd/config.go        2023-06-05 00:19:01.000000000 
+0200
@@ -675,7 +675,7 @@
        }
        c.templateData.sourceDir = sourceDirAbsPath
        c.runEnv = append(c.runEnv, 
"CHEZMOI_SOURCE_DIR="+sourceDirAbsPath.String())
-       realSystem := c.baseSystem.(*chezmoi.RealSystem) 
//nolint:forcetypeassert
+       realSystem := c.baseSystem.UnderlyingSystem().(*chezmoi.RealSystem) 
//nolint:forcetypeassert
        realSystem.SetScriptEnv(c.runEnv)
 
        // Find config template, execute it, and create config file.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.33.6/pkg/cmd/secretkeyringcmd.go 
new/chezmoi-2.34.0/pkg/cmd/secretkeyringcmd.go
--- old/chezmoi-2.33.6/pkg/cmd/secretkeyringcmd.go      2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/pkg/cmd/secretkeyringcmd.go      2023-06-05 
00:19:01.000000000 +0200
@@ -43,8 +43,8 @@
                RunE:  c.runSecretKeyringDeleteCmdE,
        }
        secretKeyringDeletePersistentFlags := keyringDeleteCmd.PersistentFlags()
-       
secretKeyringDeletePersistentFlags.StringVar(&c.secret.keyring.get.service, 
"service", "", "service")
-       
secretKeyringDeletePersistentFlags.StringVar(&c.secret.keyring.get.user, 
"user", "", "user")
+       
secretKeyringDeletePersistentFlags.StringVar(&c.secret.keyring.delete.service, 
"service", "", "service")
+       
secretKeyringDeletePersistentFlags.StringVar(&c.secret.keyring.delete.user, 
"user", "", "user")
        markPersistentFlagsRequired(keyringDeleteCmd, "service", "user")
        keyringCmd.AddCommand(keyringDeleteCmd)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.33.6/pkg/cmd/testdata/scripts/edgecases.txtar 
new/chezmoi-2.34.0/pkg/cmd/testdata/scripts/edgecases.txtar
--- old/chezmoi-2.33.6/pkg/cmd/testdata/scripts/edgecases.txtar 2023-05-15 
19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/pkg/cmd/testdata/scripts/edgecases.txtar 2023-06-05 
00:19:01.000000000 +0200
@@ -18,7 +18,7 @@
 
 # test that chezmoi reports an error if there is a .chezmoi* file in the 
.chezmoitemplates directory
 ! exec chezmoi status
-! stderr 'not allowed in \.chezmoitemplates directory'
+stderr 'not allowed in \.chezmoitemplates directory'
 
 # test that chezmoi data returns an error if an unknown read format is 
specified
 ! exec chezmoi init --config-format=yml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.33.6/pkg/cmd/testdata/scripts/executetemplate.txtar 
new/chezmoi-2.34.0/pkg/cmd/testdata/scripts/executetemplate.txtar
--- old/chezmoi-2.33.6/pkg/cmd/testdata/scripts/executetemplate.txtar   
2023-05-15 19:36:14.000000000 +0200
+++ new/chezmoi-2.34.0/pkg/cmd/testdata/scripts/executetemplate.txtar   
2023-06-05 00:19:01.000000000 +0200
@@ -82,6 +82,22 @@
 exec chezmoi execute-template --init '{{ promptString "value" "default" }}'
 stdout default
 
+# test that chezmoi execute-template reads all files in the .chezmoidata 
subdirectory
+exec chezmoi execute-template '{{ .a }}{{ .b }}'
+stdout 'alphabeta'
+
+chhome home2/user
+
+# test that files in .chezmoidata must have known extensions
+! exec chezmoi execute-template
+stderr 'unknown format'
+
+chhome home3/user
+
+# test that .chezmoiignore files are not allowed in .chezmoidata
+! exec chezmoi execute-template
+stderr 'not allowed in .chezmoidata directory'
+
 -- golden/stdin --
 # contents of stdin
 -- golden/stdin.tmpl --
@@ -90,6 +106,10 @@
 [data.last]
     config = "chezmoi.toml"
     global = "chezmoi.toml"
+-- home/user/.local/share/chezmoi/.chezmoidata/a.json --
+{"a":"alpha"}
+-- home/user/.local/share/chezmoi/.chezmoidata/dir/b.yaml --
+b: beta
 -- home/user/.local/share/chezmoi/.chezmoidata.json --
 {
   "last": {
@@ -112,3 +132,5 @@
 {{ "invalid template"
 -- home/user/.local/share/chezmoi/.chezmoitemplates/partial --
 {{ cat "hello" "world" }}
+-- home2/user/.local/share/chezmoi/.chezmoidata/unknown --
+-- home3/user/.local/share/chezmoi/.chezmoidata/.chezmoiignore --
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.33.6/pkg/cmd/testdata/scripts/issue3005.txtar 
new/chezmoi-2.34.0/pkg/cmd/testdata/scripts/issue3005.txtar
--- old/chezmoi-2.33.6/pkg/cmd/testdata/scripts/issue3005.txtar 1970-01-01 
01:00:00.000000000 +0100
+++ new/chezmoi-2.34.0/pkg/cmd/testdata/scripts/issue3005.txtar 2023-06-05 
00:19:01.000000000 +0200
@@ -0,0 +1,2 @@
+# test that chezmoi --debug init does not fail
+exec chezmoi --debug init

++++++ chezmoi.obsinfo ++++++
--- /var/tmp/diff_new_pack.u0nm6G/_old  2023-06-06 19:56:43.846640992 +0200
+++ /var/tmp/diff_new_pack.u0nm6G/_new  2023-06-06 19:56:43.850641015 +0200
@@ -1,5 +1,5 @@
 name: chezmoi
-version: 2.33.6
-mtime: 1684172174
-commit: 5bea2f925fc2b6fcf2ee116a20bae68869746787
+version: 2.34.0
+mtime: 1685917141
+commit: 006230cc05fc1fe017c942758ee92aee3058d9c5
 

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

Reply via email to