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-10-13 23:15:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/chezmoi (Old) and /work/SRC/openSUSE:Factory/.chezmoi.new.20540 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "chezmoi" Fri Oct 13 23:15:48 2023 rev:36 rq:1117687 version:2.40.3 Changes: -------- --- /work/SRC/openSUSE:Factory/chezmoi/chezmoi.changes 2023-10-12 23:42:11.361071767 +0200 +++ /work/SRC/openSUSE:Factory/.chezmoi.new.20540/chezmoi.changes 2023-10-13 23:16:44.267524292 +0200 @@ -1,0 +2,8 @@ +Fri Oct 13 15:47:25 UTC 2023 - Filippo Bonazzi <filippo.bona...@suse.com> + +- Update to version 2.40.3: + * feat: Add env config var as an alternative to scriptEnv + * feat: Warn when overriding CHEZMOI_ env vars + * feat: Set CHEZMOI_ and scriptEnv env vars for all invoked commands + +------------------------------------------------------------------- Old: ---- chezmoi-2.40.2.obscpio New: ---- chezmoi-2.40.3.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ chezmoi.spec ++++++ --- /var/tmp/diff_new_pack.lGnVSZ/_old 2023-10-13 23:16:45.055553994 +0200 +++ /var/tmp/diff_new_pack.lGnVSZ/_new 2023-10-13 23:16:45.055553994 +0200 @@ -17,7 +17,7 @@ Name: chezmoi -Version: 2.40.2 +Version: 2.40.3 Release: 0 Summary: A multi-host manager for dotfiles License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.lGnVSZ/_old 2023-10-13 23:16:45.083555050 +0200 +++ /var/tmp/diff_new_pack.lGnVSZ/_new 2023-10-13 23:16:45.087555201 +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.40.2</param> + <param name="revision">v2.40.3</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> </service> ++++++ chezmoi-2.40.2.obscpio -> chezmoi-2.40.3.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chezmoi-2.40.2/.github/workflows/main.yml new/chezmoi-2.40.3/.github/workflows/main.yml --- old/chezmoi-2.40.2/.github/workflows/main.yml 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/.github/workflows/main.yml 2023-10-11 20:27:05.000000000 +0200 @@ -9,16 +9,16 @@ tags: - v* env: - ACTIONLINT_VERSION: 1.6.25 + ACTIONLINT_VERSION: 1.6.26 AGE_VERSION: 1.1.1 CHOCOLATEY_VERSION: 2.2.2 - GO_VERSION: 1.21.2 - GOFUMPT_VERSION: 0.4.0 + GO_VERSION: 1.21.3 + GOFUMPT_VERSION: 0.5.0 GOLANGCI_LINT_VERSION: 1.54.2 GOLINES_VERSION: 0.11.0 GOVERSIONINFO_VERSION: 1.4.0 - FINDTYPOS_VERSION: 0.0.1 - MKDOCS_VERSION: 1.5.2 + FINDTYPOS_VERSION: 0.0.2 + MKDOCS_VERSION: 1.5.3 jobs: changes: runs-on: ubuntu-20.04 @@ -85,21 +85,6 @@ CHEZMOI_GITHUB_TOKEN: ${{ secrets.CHEZMOI_GITHUB_TOKEN }} run: | ( cd assets/docker && ./test.sh archlinux ) - test-debian-i386: - needs: changes - if: github.event_name == 'push' || needs.changes.outputs.code == 'true' - runs-on: macos-12 - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 - with: - path: ~/.vagrant.d - key: ${{ runner.os }}-vagrant-debian-i386-${{ hashFiles('assets/vagrant/debian11-i386.Vagrantfile') }} - restore-keys: | - ${{ runner.os }}-vagrant-debian-i386- - - name: test - run: | - ( cd assets/vagrant && ./test.sh debian11-i386 ) test-fedora: needs: changes if: github.event_name == 'push' || needs.changes.outputs.code == 'true' @@ -199,7 +184,7 @@ uses: goreleaser/goreleaser-action@7ec5c2b0c6cdda6e8bbb49444bc797dd33d74dd8 with: version: latest - args: release --skip-publish --skip-sign --snapshot --timeout=1h + args: release --skip=sign --snapshot --timeout=1h - name: upload-artifact-chezmoi-darwin-amd64 if: github.event_name == 'push' || needs.changes.outputs.code == 'true' uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce @@ -375,7 +360,6 @@ - lint - test-alpine - test-archlinux - - test-debian-i386 - test-fedora - test-macos - test-oldstable-go diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chezmoi-2.40.2/Makefile new/chezmoi-2.40.3/Makefile --- old/chezmoi-2.40.2/Makefile 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/Makefile 2023-10-11 20:27:05.000000000 +0200 @@ -95,7 +95,7 @@ .PHONY: test-vagrant test-vagrant: - ( cd assets/vagrant && ./test.sh debian11-i386 freebsd13 ) + ( cd assets/vagrant && ./test.sh freebsd13 ) .PHONY: coverage-html coverage-html: coverage @@ -188,7 +188,6 @@ test-release: goreleaser release \ --clean \ - --skip-publish \ - --skip-sign \ + --skip=sign \ --snapshot \ ${GORELEASER_FLAGS} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chezmoi-2.40.2/assets/chezmoi.io/docs/reference/configuration-file/variables.md.yaml new/chezmoi-2.40.3/assets/chezmoi.io/docs/reference/configuration-file/variables.md.yaml --- old/chezmoi-2.40.2/assets/chezmoi.io/docs/reference/configuration-file/variables.md.yaml 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/assets/chezmoi.io/docs/reference/configuration-file/variables.md.yaml 2023-10-11 20:27:05.000000000 +0200 @@ -19,6 +19,9 @@ description: Destination directory encryption: description: Encryption type, either `age` or `gpg` + env: + type: object + description: Extra environment variables for scripts and commands format: default: '`json`' description: Format for data output, either `json` or `yaml` @@ -39,7 +42,7 @@ description: Display progress bars scriptEnv: type: object - description: Extra environment variables for scripts + description: Extra environment variables for scripts and commands scriptTempDir: description: Temporary directory for scripts sourceDir: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chezmoi-2.40.2/assets/chezmoi.io/docs/reference/release-history.md.tmpl new/chezmoi-2.40.3/assets/chezmoi.io/docs/reference/release-history.md.tmpl --- old/chezmoi-2.40.2/assets/chezmoi.io/docs/reference/release-history.md.tmpl 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/assets/chezmoi.io/docs/reference/release-history.md.tmpl 2023-10-11 20:27:05.000000000 +0200 @@ -1,13 +1,15 @@ # Release history -{{- range $release := gitHubListReleases "twpayne/chezmoi" }} + +{{- $releases := gitHubListReleases "twpayne/chezmoi" }} +{{- $lastReleaseIndex := sub (len $releases) 1 }} +{{- range $index, $release := $releases }} ## [{{ $release.Name | trimPrefix "v" }}]({{ $release.HTMLURL }}) ({{ $release.PublishedAt | gitHubTimestampFormat "2006-01-02" }}) {{ $release.Body - | replaceAllRegex "(?m)^## What's Changed$" "" - | replaceAllRegex "(?m)^## Changelog\\r?$" "" - | replaceAllRegex "(?m)^## (New Contributors)\\r?$" "$1\n" - | replaceAllRegex "\\*\\*(Full Changelog)\\*\\*" "$1" + | replaceAllRegex "(?m)^#+ (Changelog\\r?|What's Changed)$" "" + | replaceAllRegex "(?m)^#+ (.*)\\r?$" "\n\n$1\n" + | replaceAllRegex "\\*\\*(Full Changelog)\\*\\*.*\n" "" | replaceAllRegex "(https://github\\.com/twpayne/chezmoi/compare/(\\S+))" "[`$2`]($1)" | replaceAllRegex "@(\\S+)" "[**$0**](https://github.com/$1)" | replaceAllRegex "pull request #(\\d+)" "pull request https://github.com/twpayne/chezmoi/pull/$1" @@ -16,5 +18,14 @@ | replaceAllRegex "(?m)^([0-9a-f]{7,})" "* $1" | replaceAllRegex "(?m)^\\* ([0-9a-f]{7,})" "* [`$1`](https://github.com/twpayne/chezmoi/commit/$1)" | replaceAllRegex "\\r\\n" "\\n" + | trim + | default "Internal changes only" }} + +{{- if ne $index $lastReleaseIndex }} +{{- $prevRelease := index $releases (add $index 1) }} + +Full changelog: [{{ $prevRelease.Name }}...{{ $release.Name }}](https://github.com/twpayne/chezmoi/compare/{{ $prevRelease.Name }}...{{ $release.Name }}) +{{- end }} + {{- end }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chezmoi-2.40.2/assets/chezmoi.io/docs/reference/target-types.md new/chezmoi-2.40.3/assets/chezmoi.io/docs/reference/target-types.md --- old/chezmoi-2.40.2/assets/chezmoi.io/docs/reference/target-types.md 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/assets/chezmoi.io/docs/reference/target-types.md 2023-10-11 20:27:05.000000000 +0200 @@ -94,7 +94,7 @@ chezmoi sets a number of `CHEZMOI*` environment variables when running scripts, corresponding to commonly-used template data variables. Extra environment -variables can be set in the `scriptEnv` configuration variable. +variables can be set in the `env` or `scriptEnv` configuration variables. ### Scripts on Windows diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chezmoi-2.40.2/assets/vagrant/debian11-i386.Vagrantfile new/chezmoi-2.40.3/assets/vagrant/debian11-i386.Vagrantfile --- old/chezmoi-2.40.2/assets/vagrant/debian11-i386.Vagrantfile 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/assets/vagrant/debian11-i386.Vagrantfile 1970-01-01 01:00:00.000000000 +0100 @@ -1,18 +0,0 @@ -Vagrant.configure("2") do |config| - config.vm.box = "generic-x32/debian11" - config.vm.define "debian11-i386" - config.vm.hostname = "debian11-i386" - config.vm.synced_folder ".", "/chezmoi", type: "rsync" - config.vm.provision "shell", inline: <<-SHELL - DEBIAN_FRONTEND=noninteractive apt-get update - DEBIAN_FRONTEND=noninteractive apt-get install -y age gpg golang unzip xz-utils zip - SHELL - config.vm.provision "shell", inline: <<-SHELL - echo CHEZMOI_GITHUB_ACCESS_TOKEN=#{ENV['CHEZMOI_GITHUB_ACCESS_TOKEN']} >> /home/vagrant/.bash_profile - echo CHEZMOI_GITHUB_TOKEN=#{ENV['CHEZMOI_GITHUB_TOKEN']} >> /home/vagrant/.bash_profile - echo GITHUB_ACCESS_TOKEN=#{ENV['GITHUB_ACCESS_TOKEN']} >> /home/vagrant/.bash_profile - echo GITHUB_TOKEN=#{ENV['GITHUB_TOKEN']} >> /home/vagrant/.bash_profile - echo export CHEZMOI_GITHUB_ACCESS_TOKEN CHEZMOI_GITHUB_TOKEN GITHUB_ACCESS_TOKEN GITHUB_TOKEN >> /home/vagrant/.bash_profile - SHELL - config.vm.provision "file", source: "assets/vagrant/debian11-i386.test-chezmoi.sh", destination: "test-chezmoi.sh" -end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chezmoi-2.40.2/assets/vagrant/debian11-i386.test-chezmoi.sh new/chezmoi-2.40.3/assets/vagrant/debian11-i386.test-chezmoi.sh --- old/chezmoi-2.40.2/assets/vagrant/debian11-i386.test-chezmoi.sh 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/assets/vagrant/debian11-i386.test-chezmoi.sh 1970-01-01 01:00:00.000000000 +0100 @@ -1,18 +0,0 @@ -#!/bin/bash - -set -eufo pipefail - -git config --global --add safe.directory /chezmoi - -GO_VERSION=$(awk '/GO_VERSION:/ { print $2 }' /chezmoi/.github/workflows/main.yml | tr -d \') - -go get "golang.org/dl/go${GO_VERSION}" -"${HOME}/go/bin/go${GO_VERSION}" download -export PATH="${HOME}/sdk/go${GO_VERSION}/bin:${PATH}" - -cd /chezmoi - -go test ./... - -sh assets/scripts/install.sh -bin/chezmoi --version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chezmoi-2.40.2/go.mod new/chezmoi-2.40.3/go.mod --- old/chezmoi-2.40.2/go.mod 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/go.mod 2023-10-11 20:27:05.000000000 +0200 @@ -4,7 +4,7 @@ require ( filippo.io/age v1.1.1 - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.1 + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.0.1 github.com/Masterminds/sprig/v3 v3.2.3 github.com/Shopify/ejson v1.4.1 @@ -85,7 +85,7 @@ github.com/aymerick/douceur v0.2.0 // indirect github.com/bradenhilton/cityhash v1.0.0 // indirect github.com/charmbracelet/harmonica v0.2.0 // indirect - github.com/charmbracelet/lipgloss v0.8.0 // indirect + github.com/charmbracelet/lipgloss v0.9.0 // indirect github.com/cloudflare/circl v1.3.3 // indirect github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect @@ -134,7 +134,7 @@ github.com/yuin/goldmark v1.5.6 // indirect github.com/yuin/goldmark-emoji v1.0.2 // indirect golang.org/x/mod v0.13.0 // indirect - golang.org/x/net v0.16.0 // indirect + golang.org/x/net v0.17.0 // indirect golang.org/x/text v0.13.0 // indirect golang.org/x/tools v0.14.0 // indirect google.golang.org/appengine v1.6.8 // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chezmoi-2.40.2/go.sum new/chezmoi-2.40.3/go.sum --- old/chezmoi-2.40.2/go.sum 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/go.sum 2023-10-11 20:27:05.000000000 +0200 @@ -10,8 +10,8 @@ filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.8.0 h1:9kDVnTz3vbfweTqAUmk/a/pH5pWFCHtvRpHYC0G/dcA= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.8.0/go.mod h1:3Ug6Qzto9anB6mGlEdgYMDF5zHQ+wwhEaYR4s17PHMw= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.1 h1:LNHhpdK7hzUcx/k1LIcuh5k7k1LGIWLQfCjaneSj7Fc= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.1/go.mod h1:uE9zaUfEQT/nbQjVi2IblCG9iaLtZsuYZ8ne+PuQ02M= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 h1:BMAjVKJM0U/CYF27gA0ZMmXGkOcvfFtD0oHVZ1TIPRI= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0/go.mod h1:1fXstnBMas5kzG+S3q8UoJcmyU6nUeunJcMDHcRYHhs= github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.0.1 h1:8TkzQBrN9PWIwo7ekdd696KpC6IfTltV2/F8qKKBWik= @@ -98,8 +98,8 @@ github.com/charmbracelet/glamour v0.6.0/go.mod h1:taqWV4swIMMbWALc0m7AfE9JkPSU8om2538k9ITBxOc= github.com/charmbracelet/harmonica v0.2.0 h1:8NxJWRWg/bzKqqEaaeFNipOu77YR5t8aSwG4pgaUBiQ= github.com/charmbracelet/harmonica v0.2.0/go.mod h1:KSri/1RMQOZLbw7AHqgcBycp8pgJnQMYYT8QZRqZ1Ao= -github.com/charmbracelet/lipgloss v0.8.0 h1:IS00fk4XAHcf8uZKc3eHeMUTCxUH6NkaTrdyCQk84RU= -github.com/charmbracelet/lipgloss v0.8.0/go.mod h1:p4eYUZZJ/0oXTuCQKFF8mqyKCz0ja6y+7DniDDw5KKU= +github.com/charmbracelet/lipgloss v0.9.0 h1:BHIM7U4vX77xGEld8GrTKspBMtSv7j0wxPCH73nrdxE= +github.com/charmbracelet/lipgloss v0.9.0/go.mod h1:h8KDyaivONasw1Bhb4nWiKlk4P1wHPly+3+3v6EFMmA= 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.4-0.20230313162750-1ae8d489ac81 h1:q2hJAaP1k2wIvVRd/hEHD7lacgqrCPS+k8g1MndzfWY= @@ -384,8 +384,8 @@ 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.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.16.0 h1:7eBu7KsSvFDtSXUIDbh3aqlK4DPsZ1rByC8PFfBThos= -golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.13.0 h1:jDDenyj+WgFtmV3zYVoi8aE2BwtXFLWOA67ZfNWftiY= golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chezmoi-2.40.2/internal/chezmoi/archivereadersystem.go new/chezmoi-2.40.3/internal/chezmoi/archivereadersystem.go --- old/chezmoi-2.40.2/internal/chezmoi/archivereadersystem.go 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/internal/chezmoi/archivereadersystem.go 2023-10-11 20:27:05.000000000 +0200 @@ -109,8 +109,3 @@ } 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.40.2/internal/chezmoi/debugsystem.go new/chezmoi-2.40.3/internal/chezmoi/debugsystem.go --- old/chezmoi-2.40.2/internal/chezmoi/debugsystem.go 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/internal/chezmoi/debugsystem.go 2023-10-11 20:27:05.000000000 +0200 @@ -191,11 +191,6 @@ 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.40.2/internal/chezmoi/dryrunsystem.go new/chezmoi-2.40.3/internal/chezmoi/dryrunsystem.go --- old/chezmoi-2.40.2/internal/chezmoi/dryrunsystem.go 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/internal/chezmoi/dryrunsystem.go 2023-10-11 20:27:05.000000000 +0200 @@ -127,11 +127,6 @@ 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.40.2/internal/chezmoi/dumpsystem.go new/chezmoi-2.40.3/internal/chezmoi/dumpsystem.go --- old/chezmoi-2.40.2/internal/chezmoi/dumpsystem.go 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/internal/chezmoi/dumpsystem.go 2023-10-11 20:27:05.000000000 +0200 @@ -124,11 +124,6 @@ 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.40.2/internal/chezmoi/erroronwritesystem.go new/chezmoi-2.40.3/internal/chezmoi/erroronwritesystem.go --- old/chezmoi-2.40.2/internal/chezmoi/erroronwritesystem.go 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/internal/chezmoi/erroronwritesystem.go 2023-10-11 20:27:05.000000000 +0200 @@ -114,11 +114,6 @@ 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.40.2/internal/chezmoi/externaldiffsystem.go new/chezmoi-2.40.3/internal/chezmoi/externaldiffsystem.go --- old/chezmoi-2.40.2/internal/chezmoi/externaldiffsystem.go 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/internal/chezmoi/externaldiffsystem.go 2023-10-11 20:27:05.000000000 +0200 @@ -224,11 +224,6 @@ 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.40.2/internal/chezmoi/gitdiffsystem.go new/chezmoi-2.40.3/internal/chezmoi/gitdiffsystem.go --- old/chezmoi-2.40.2/internal/chezmoi/gitdiffsystem.go 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/internal/chezmoi/gitdiffsystem.go 2023-10-11 20:27:05.000000000 +0200 @@ -247,11 +247,6 @@ 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.40.2/internal/chezmoi/nullsystem.go new/chezmoi-2.40.3/internal/chezmoi/nullsystem.go --- old/chezmoi-2.40.2/internal/chezmoi/nullsystem.go 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/internal/chezmoi/nullsystem.go 2023-10-11 20:27:05.000000000 +0200 @@ -4,8 +4,3 @@ 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.40.2/internal/chezmoi/readonlysystem.go new/chezmoi-2.40.3/internal/chezmoi/readonlysystem.go --- old/chezmoi-2.40.2/internal/chezmoi/readonlysystem.go 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/internal/chezmoi/readonlysystem.go 2023-10-11 20:27:05.000000000 +0200 @@ -58,8 +58,3 @@ 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.40.2/internal/chezmoi/realsystem.go new/chezmoi-2.40.3/internal/chezmoi/realsystem.go --- old/chezmoi-2.40.2/internal/chezmoi/realsystem.go 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/internal/chezmoi/realsystem.go 2023-10-11 20:27:05.000000000 +0200 @@ -128,7 +128,6 @@ if err != nil { return err } - cmd.Env = s.scriptEnv cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr @@ -136,11 +135,6 @@ return s.RunCmd(cmd) } -// SetScriptEnv sets the environment variables for scripts. -func (s *RealSystem) SetScriptEnv(scriptEnv []string) { - s.scriptEnv = scriptEnv -} - // Stat implements System.Stat. func (s *RealSystem) Stat(name AbsPath) (fs.FileInfo, error) { return s.fileSystem.Stat(name.String()) @@ -151,11 +145,6 @@ 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.40.2/internal/chezmoi/realsystem_unix.go new/chezmoi-2.40.3/internal/chezmoi/realsystem_unix.go --- old/chezmoi-2.40.2/internal/chezmoi/realsystem_unix.go 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/internal/chezmoi/realsystem_unix.go 2023-10-11 20:27:05.000000000 +0200 @@ -21,7 +21,6 @@ safe bool createScriptTempDirOnce sync.Once scriptTempDir AbsPath - scriptEnv []string devCache map[AbsPath]uint // devCache maps directories to device numbers. tempDirCache map[uint]string // tempDirCache maps device numbers to renameio temporary directories. } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chezmoi-2.40.2/internal/chezmoi/sourcestate.go new/chezmoi-2.40.3/internal/chezmoi/sourcestate.go --- old/chezmoi-2.40.2/internal/chezmoi/sourcestate.go 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/internal/chezmoi/sourcestate.go 2023-10-11 20:27:05.000000000 +0200 @@ -124,7 +124,6 @@ defaultTemplateData map[string]any userTemplateData map[string]any priorityTemplateData map[string]any - scriptEnv []string templateData map[string]any templateFuncs template.FuncMap templateOptions []string @@ -213,13 +212,6 @@ } } -// WithScriptEnv sets the script environment variables. -func WithScriptEnv(scriptEnv []string) SourceStateOption { - return func(s *SourceState) { - s.scriptEnv = scriptEnv - } -} - // WithSourceDir sets the source directory. func WithSourceDir(sourceDirAbsPath AbsPath) SourceStateOption { return func(s *SourceState) { @@ -1911,7 +1903,6 @@ // Run the modifier on the current contents. cmd := interpreter.ExecCommand(tempFile.Name()) - cmd.Env = s.scriptEnv cmd.Stdin = bytes.NewReader(currentContents) cmd.Stderr = os.Stderr contents, err = chezmoilog.LogCmdOutput(cmd) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chezmoi-2.40.2/internal/chezmoi/system.go new/chezmoi-2.40.3/internal/chezmoi/system.go --- old/chezmoi-2.40.2/internal/chezmoi/system.go 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/internal/chezmoi/system.go 2023-10-11 20:27:05.000000000 +0200 @@ -38,7 +38,6 @@ 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.40.2/internal/chezmoi/tarwritersystem.go new/chezmoi-2.40.3/internal/chezmoi/tarwritersystem.go --- old/chezmoi-2.40.2/internal/chezmoi/tarwritersystem.go 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/internal/chezmoi/tarwritersystem.go 2023-10-11 20:27:05.000000000 +0200 @@ -52,11 +52,6 @@ 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.40.2/internal/chezmoi/zipwritersystem.go new/chezmoi-2.40.3/internal/chezmoi/zipwritersystem.go --- old/chezmoi-2.40.2/internal/chezmoi/zipwritersystem.go 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/internal/chezmoi/zipwritersystem.go 2023-10-11 20:27:05.000000000 +0200 @@ -57,11 +57,6 @@ 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.40.2/internal/cmd/cdcmd.go new/chezmoi-2.40.3/internal/cmd/cdcmd.go --- old/chezmoi-2.40.2/internal/cmd/cdcmd.go 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/internal/cmd/cdcmd.go 2023-10-11 20:27:05.000000000 +0200 @@ -36,9 +36,10 @@ } func (c *Config) runCDCmd(cmd *cobra.Command, args []string) error { - if _, ok := os.LookupEnv("CHEZMOI"); ok { + if _, ok := os.LookupEnv("CHEZMOI_SUBSHELL"); ok { return errors.New("already in a chezmoi subshell") } + os.Setenv("CHEZMOI_SUBSHELL", "1") cdCommand, cdArgs, err := c.cdCommand() if err != nil { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chezmoi-2.40.2/internal/cmd/config.go new/chezmoi-2.40.3/internal/cmd/config.go --- old/chezmoi-2.40.2/internal/cmd/config.go 2023-10-09 09:38:38.000000000 +0200 +++ new/chezmoi-2.40.3/internal/cmd/config.go 2023-10-11 20:27:05.000000000 +0200 @@ -100,6 +100,7 @@ CacheDirAbsPath chezmoi.AbsPath `json:"cacheDir" mapstructure:"cacheDir" yaml:"cacheDir"` Color autoBool `json:"color" mapstructure:"color" yaml:"color"` Data map[string]any `json:"data" mapstructure:"data" yaml:"data"` + Env map[string]string `json:"env" mapstructure:"env" yaml:"env"` Format writeDataFormat `json:"format" mapstructure:"format" yaml:"format"` DestDirAbsPath chezmoi.AbsPath `json:"destDir" mapstructure:"destDir" yaml:"destDir"` GitHub gitHubConfig `json:"gitHub" mapstructure:"gitHub" yaml:"gitHub"` @@ -232,7 +233,6 @@ sourceState *chezmoi.SourceState sourceStateErr error templateData *templateData - runEnv []string stdin io.Reader stdout io.Writer @@ -710,9 +710,7 @@ return err } c.templateData.sourceDir = sourceDirAbsPath - c.runEnv = append(c.runEnv, "CHEZMOI_SOURCE_DIR="+sourceDirAbsPath.String()) - realSystem := c.baseSystem.UnderlyingSystem().(*chezmoi.RealSystem) //nolint:forcetypeassert - realSystem.SetScriptEnv(c.runEnv) + os.Setenv("CHEZMOI_SOURCE_DIR", sourceDirAbsPath.String()) // Find config template, execute it, and create config file. configTemplate, err := c.findConfigTemplate() @@ -1705,7 +1703,6 @@ chezmoi.WithLogger(&sourceStateLogger), chezmoi.WithMode(c.Mode), chezmoi.WithPriorityTemplateData(c.Data), - chezmoi.WithScriptEnv(c.runEnv), chezmoi.WithSourceDir(c.SourceDirAbsPath), chezmoi.WithSystem(c.sourceSystem), chezmoi.WithTemplateFuncs(c.templateFuncs), @@ -2091,9 +2088,8 @@ } } - scriptEnv := os.Environ() templateData := c.getTemplateData(cmd) - scriptEnv = append(scriptEnv, "CHEZMOI=1") + os.Setenv("CHEZMOI", "1") for key, value := range map[string]string{ "ARCH": templateData.arch, "ARGS": strings.Join(templateData.args, " "), @@ -2112,10 +2108,10 @@ "USERNAME": templateData.username, "WORKING_TREE": templateData.workingTree.String(), } { - scriptEnv = append(scriptEnv, "CHEZMOI_"+key+"="+value) + os.Setenv("CHEZMOI_"+key, value) } if c.Verbose { - scriptEnv = append(scriptEnv, "CHEZMOI_VERBOSE=1") + os.Setenv("CHEZMOI_VERBOSE", "1") } for groupKey, group := range map[string]map[string]any{ "KERNEL": templateData.kernel, @@ -2124,16 +2120,26 @@ "WINDOWS_VERSION": templateData.windowsVersion, } { for key, value := range group { - upperSnakeCaseKey := camelCaseToUpperSnakeCase(key) + key := "CHEZMOI_" + groupKey + "_" + camelCaseToUpperSnakeCase(key) valueStr := fmt.Sprintf("%s", value) - scriptEnv = append(scriptEnv, "CHEZMOI_"+groupKey+"_"+upperSnakeCaseKey+"="+valueStr) + os.Setenv(key, valueStr) } } - for key, value := range c.ScriptEnv { - scriptEnv = append(scriptEnv, key+"="+value) + var env map[string]string + switch { + case len(c.Env) != 0 && len(c.ScriptEnv) != 0: + return errors.New("only one of env or scriptEnv may be set") + case len(c.Env) != 0: + env = c.Env + case len(c.ScriptEnv) != 0: + env = c.ScriptEnv + } + for key, value := range env { + if strings.HasPrefix(key, "CHEZMOI_") { + c.errorf("warning: %s: overriding reserved environment variable", key) + } + os.Setenv(key, value) } - c.runEnv = scriptEnv - realSystem.SetScriptEnv(scriptEnv) if command := c.Hooks[cmd.Name()].Pre; command.Command != "" { if err := c.run(c.homeDirAbsPath, command.Command, command.Args); err != nil { @@ -2326,7 +2332,6 @@ } cmd.Dir = dirRawAbsPath.String() } - cmd.Env = c.runEnv cmd.Stdin = c.stdin cmd.Stdout = c.stdout cmd.Stderr = c.stderr diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chezmoi-2.40.2/internal/cmd/testdata/scripts/issue3268.txtar new/chezmoi-2.40.3/internal/cmd/testdata/scripts/issue3268.txtar --- old/chezmoi-2.40.2/internal/cmd/testdata/scripts/issue3268.txtar 1970-01-01 01:00:00.000000000 +0100 +++ new/chezmoi-2.40.3/internal/cmd/testdata/scripts/issue3268.txtar 2023-10-11 20:27:05.000000000 +0200 @@ -0,0 +1,35 @@ +[unix] chmod 755 bin/chezmoi-test-command + +# test that chezmoi sets CHEZMOI_ environment variables +exec chezmoi execute-template '{{ output "chezmoi-test-command" }}' +stdout 'CHEZMOI_SOURCE_DIR=.*/\.local/share/chezmoi\s?$' + +chhome home2/user + +# test that chezmoi sets environment variables from env +exec chezmoi execute-template '{{ env "VAR" }}' +stdout VALUE + +chhome home3/user + +# test that env and scriptEnv cannot both be set +! exec chezmoi execute-template '' +stderr 'only one of env or scriptEnv may be set' + +-- bin/chezmoi-test-command -- +#!/bin/sh + +echo CHEZMOI_SOURCE_DIR=${CHEZMOI_SOURCE_DIR} +-- bin/chezmoi-test-command.cmd -- +@echo CHEZMOI_SOURCE_DIR=%CHEZMOI_SOURCE_DIR% +-- home2/user/.config/chezmoi/chezmoi.json -- +{ + "env": { + "VAR": "VALUE" + } +} +-- home3/user/.config/chezmoi/chezmoi.yaml -- +env: + VAR: VALUE +scriptEnv: + VAR: VALUE ++++++ chezmoi.obsinfo ++++++ --- /var/tmp/diff_new_pack.lGnVSZ/_old 2023-10-13 23:16:45.487570278 +0200 +++ /var/tmp/diff_new_pack.lGnVSZ/_new 2023-10-13 23:16:45.487570278 +0200 @@ -1,5 +1,5 @@ name: chezmoi -version: 2.40.2 -mtime: 1696837118 -commit: 9f20f698cdb6bcdce7c9f5995bc382658eaf923c +version: 2.40.3 +mtime: 1697048825 +commit: 294c2c8bea1d9fda0b14bd029774dc96e066c0cd ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/chezmoi/vendor.tar.gz /work/SRC/openSUSE:Factory/.chezmoi.new.20540/vendor.tar.gz differ: char 5, line 1