Skip to content
This repository was archived by the owner on Feb 16, 2023. It is now read-only.

Commit 0cb4c70

Browse files
committed
Fix migrate config templates command
The command would throw an error because it did not have write permission for overwriting the provided file.
1 parent d9dbccf commit 0cb4c70

3 files changed

Lines changed: 15 additions & 20 deletions

File tree

internals/secrethub/migrate_config_envfile.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"bytes"
55
"fmt"
66
"io/ioutil"
7-
"os"
87
"regexp"
98

109
"github.com/secrethub/secrethub-cli/internals/cli"
@@ -40,13 +39,7 @@ func (cmd *MigrateConfigEnvfileCommand) Run() error {
4039
return err
4140
}
4241

43-
outFile, err := os.Create(".env")
44-
if err != nil {
45-
return fmt.Errorf("cannot create output .env file: %s", err)
46-
}
47-
defer outFile.Close()
48-
49-
replaceCount, err := migrateTemplateTags(bytes.NewBuffer(inFileContents), outFile, refMapping, "%s")
42+
replaceCount, err := migrateTemplateTags(bytes.NewBuffer(inFileContents), ".env", refMapping, "%s")
5043
if err != nil {
5144
return err
5245
}

internals/secrethub/migrate_config_templates.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package secrethub
22

33
import (
4+
"bytes"
45
"fmt"
56
"io"
67
"io/ioutil"
7-
"os"
88
"regexp"
99
"strings"
1010

@@ -31,13 +31,12 @@ func (cmd *MigrateConfigTemplatesCommand) Run() error {
3131
refMapping.stripSecretHubURIScheme()
3232

3333
for _, filepath := range cmd.inFiles {
34-
file, err := os.Open(filepath)
34+
inFileContents, err := ioutil.ReadFile(filepath)
3535
if err != nil {
3636
return ErrReadFile(filepath, err)
3737
}
38-
defer file.Close()
3938

40-
replaceCount, err := migrateTemplateTags(file, file, refMapping, "{{ %s }}")
39+
replaceCount, err := migrateTemplateTags(bytes.NewBuffer(inFileContents), filepath, refMapping, "{{ %s }}")
4140
if err != nil {
4241
return err
4342
}
@@ -48,7 +47,7 @@ func (cmd *MigrateConfigTemplatesCommand) Run() error {
4847
return nil
4948
}
5049

51-
func migrateTemplateTags(inFile io.Reader, outFile io.Writer, mapping referenceMapping, formatString string) ([]string, error) {
50+
func migrateTemplateTags(inFile io.Reader, outFile string, mapping referenceMapping, formatString string) ([]string, error) {
5251
raw, err := ioutil.ReadAll(inFile)
5352
if err != nil {
5453
return nil, ErrReadFile(inFile, err)
@@ -89,7 +88,7 @@ func migrateTemplateTags(inFile io.Reader, outFile io.Writer, mapping referenceM
8988
return nil, fmt.Errorf(errMsg)
9089
}
9190

92-
_, err = io.WriteString(outFile, output)
91+
err = ioutil.WriteFile(outFile, []byte(output), 0666)
9392
if err != nil {
9493
return nil, err
9594
}

internals/secrethub/migrate_config_test.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package secrethub
22

33
import (
44
"bytes"
5+
"io/ioutil"
56
"testing"
67

78
"github.com/secrethub/secrethub-go/internals/assert"
@@ -103,20 +104,21 @@ func TestMigrateTemplates(t *testing.T) {
103104
},
104105
} {
105106
t.Run(name, func(t *testing.T) {
106-
var out bytes.Buffer
107107
m := referenceMapping(tc.mapping)
108108
m.stripSecretHubURIScheme()
109109
err := m.addVarPossibilities(tc.vars)
110110
assert.OK(t, err)
111111

112-
_, err = migrateTemplateTags(bytes.NewReader([]byte(tc.in)), &out, m, "{{ %s }}")
112+
_, err = migrateTemplateTags(bytes.NewReader([]byte(tc.in)), "test.yml.tpl", m, "{{ %s }}")
113113
if tc.expectedErr {
114114
assert.Equal(t, err != nil, true)
115115
return
116116
}
117117

118118
assert.OK(t, err)
119-
assert.Equal(t, out.String(), tc.expected)
119+
res, err := ioutil.ReadFile("test.yml.tpl")
120+
assert.OK(t, err)
121+
assert.Equal(t, string(res), tc.expected)
120122
})
121123
}
122124
}
@@ -225,7 +227,6 @@ func TestMigrateEnvfile(t *testing.T) {
225227
},
226228
} {
227229
t.Run(name, func(t *testing.T) {
228-
var out bytes.Buffer
229230
m := referenceMapping(tc.mapping)
230231
m.stripSecretHubURIScheme()
231232
err := m.addVarPossibilities(tc.vars)
@@ -237,7 +238,7 @@ func TestMigrateEnvfile(t *testing.T) {
237238
return err
238239
}
239240

240-
_, err = migrateTemplateTags(bytes.NewReader([]byte(tc.in)), &out, m, "%s")
241+
_, err = migrateTemplateTags(bytes.NewReader([]byte(tc.in)), ".env", m, "%s")
241242
return err
242243
}()
243244

@@ -247,7 +248,9 @@ func TestMigrateEnvfile(t *testing.T) {
247248
}
248249

249250
assert.OK(t, err)
250-
assert.Equal(t, out.String(), tc.expected)
251+
res, err := ioutil.ReadFile(".env")
252+
assert.OK(t, err)
253+
assert.Equal(t, string(res), tc.expected)
251254
})
252255
}
253256
}

0 commit comments

Comments
 (0)