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