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

Reply via email to