5
5
"io"
6
6
"os"
7
7
"path/filepath"
8
+ "strings"
8
9
"testing"
9
10
10
11
"github.com/stretchr/testify/require"
@@ -39,25 +40,39 @@ func TestTar(t *testing.T) {
39
40
Name string
40
41
Archives bool
41
42
}
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
+ }
61
76
for _ ,file := range files {
62
77
newDir := dir
63
78
file .Name = filepath .FromSlash (file .Name )
@@ -67,11 +82,19 @@ func TestTar(t *testing.T) {
67
82
require .NoError (t ,err )
68
83
file .Name = filepath .Base (file .Name )
69
84
}
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
+ if strings .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
+ }
75
98
}
76
99
archive := new (bytes.Buffer )
77
100
err := provisionersdk .Tar (archive ,dir ,1024 )