Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitef2411e

Browse files
authored
fix(provisionersdk): allow.terraform.lock.hcl files to be archived (#7604)
1 parenta29c4c5 commitef2411e

File tree

2 files changed

+50
-25
lines changed

2 files changed

+50
-25
lines changed

‎provisionersdk/archive.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,9 @@ func Tar(w io.Writer, directory string, limit int64) error {
7373
iferr!=nil {
7474
returnerr
7575
}
76-
ifstrings.HasPrefix(rel,".")||strings.HasPrefix(filepath.Base(rel),".") {
76+
// We want to allow .terraform.lock.hcl files to be archived. This
77+
// allows provider plugins to be cached.
78+
if (strings.HasPrefix(rel,".")||strings.HasPrefix(filepath.Base(rel),"."))&&filepath.Base(rel)!=".terraform.lock.hcl" {
7779
iffileInfo.IsDir()&&rel!="." {
7880
// Don't archive hidden files!
7981
returnfilepath.SkipDir

‎provisionersdk/archive_test.go

Lines changed: 47 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"io"
66
"os"
77
"path/filepath"
8+
"strings"
89
"testing"
910

1011
"github.com/stretchr/testify/require"
@@ -39,25 +40,39 @@ func TestTar(t *testing.T) {
3940
Namestring
4041
Archivesbool
4142
}
42-
files:= []*file{{
43-
Name:"*.tf",
44-
Archives:true,
45-
}, {
46-
Name:".*",
47-
Archives:false,
48-
}, {
49-
Name:"./testing/.test/*.tf",
50-
Archives:false,
51-
}, {
52-
Name:"./testing/asd.*",
53-
Archives:true,
54-
}, {
55-
Name:".terraform/.*",
56-
Archives:false,
57-
}, {
58-
Name:"example/.terraform/*",
59-
Archives:false,
60-
}}
43+
files:= []*file{
44+
{
45+
Name:"*.tf",
46+
Archives:true,
47+
}, {
48+
Name:".*",
49+
Archives:false,
50+
}, {
51+
Name:"./testing/.test/*.tf",
52+
Archives:false,
53+
}, {
54+
Name:"./testing/asd.*",
55+
Archives:true,
56+
}, {
57+
Name:".terraform/.*",
58+
Archives:false,
59+
}, {
60+
Name:"example/.terraform/*",
61+
Archives:false,
62+
}, {
63+
Name:".terraform.lock.hcl",
64+
Archives:true,
65+
}, {
66+
Name:"example/.terraform.lock.hcl",
67+
Archives:true,
68+
}, {
69+
Name:".terraform/.terraform.lock.hcl",
70+
Archives:false,
71+
}, {
72+
Name:"terraform.tfstate",
73+
Archives:false,
74+
},
75+
}
6176
for_,file:=rangefiles {
6277
newDir:=dir
6378
file.Name=filepath.FromSlash(file.Name)
@@ -67,11 +82,19 @@ func TestTar(t *testing.T) {
6782
require.NoError(t,err)
6883
file.Name=filepath.Base(file.Name)
6984
}
70-
tmpFile,err:=os.CreateTemp(newDir,file.Name)
71-
require.NoError(t,err)
72-
_=tmpFile.Close()
73-
file.Name,err=filepath.Rel(dir,tmpFile.Name())
74-
require.NoError(t,err)
85+
ifstrings.Contains(file.Name,"*") {
86+
tmpFile,err:=os.CreateTemp(newDir,file.Name)
87+
require.NoError(t,err)
88+
_=tmpFile.Close()
89+
file.Name,err=filepath.Rel(dir,tmpFile.Name())
90+
require.NoError(t,err)
91+
}else {
92+
name:=filepath.Join(newDir,file.Name)
93+
err:=os.WriteFile(name, []byte{},0o600)
94+
require.NoError(t,err)
95+
file.Name,err=filepath.Rel(dir,name)
96+
require.NoError(t,err)
97+
}
7598
}
7699
archive:=new(bytes.Buffer)
77100
err:=provisionersdk.Tar(archive,dir,1024)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp