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