Skip to content

Commit 1ae3fdf

Browse files
authored
feat: support import file (#5)
* support import file flag * docs
1 parent 169e658 commit 1ae3fdf

File tree

7 files changed

+39
-4
lines changed

7 files changed

+39
-4
lines changed

README.md

+15-2
Original file line numberDiff line numberDiff line change
@@ -134,11 +134,24 @@ echo NEW_VALUE | ennbu replace -f .env -k KEY_NAME
134134
`--escape` flags escape value
135135

136136
```bash
137-
ennbu set -k PRIVATE_KEY -e -- "$(cat id_ed25519)"
137+
ennbu set -k A "aaa
138+
bbb
139+
140+
cc"
141+
```
142+
143+
```text
144+
A="aaa\nbbb\n\ncc"
145+
```
146+
147+
`--importFile` flags enabled, read content from args
148+
149+
```bash
150+
ennbu set -k PRIVATE_KEY --importFile ~/.ssh/id_ed25519 --escape
138151
```
139152

140153
```text
141-
PRIVATE_KEY=
154+
PRIVATE_KEY="-----BEGIN OPENSSH PRIVATE KEY-----\\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\\n-----END OPENSSH PRIVATE KEY-----"
142155
```
143156

144157
## Contributing

cmd/replace.go

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ $ ennbu replace -e .env.development -k KEY VALUE
2323

2424
func init() {
2525
replaceCmd.Flags().BoolP(replace.FlagEscape, "e", false, "value is escaped")
26+
replaceCmd.Flags().BoolP(replace.FlagImportFile, "i", false, "import file path")
2627
_ = replaceCmd.MarkFlagRequired(flags.FlagKey)
2728

2829
rootCmd.AddCommand(replaceCmd)

cmd/set.go

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ $ ennbu set -e .env.development -k KEY VALUE
2323

2424
func init() {
2525
setCmd.Flags().BoolP(set.FlagEscape, "e", false, "value is escaped")
26+
setCmd.Flags().BoolP(set.FlagImportFile, "i", false, "import file path")
2627
_ = setCmd.MarkFlagRequired(flags.FlagKey)
2728
rootCmd.AddCommand(setCmd)
2829
}

replace/flags.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package replace
22

33
const (
4-
FlagEscape = "escape"
4+
FlagEscape = "escape"
5+
FlagImportFile = "importFile"
56
)

replace/run.go

+9
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package replace
22

33
import (
44
"fmt"
5+
"os"
56

67
"github.com/spf13/cobra"
78
"github.com/u-yas/ennbu/env"
@@ -12,8 +13,16 @@ func Run(cmd *cobra.Command, args []string) error {
1213
key, _ := cmd.Flags().GetString(flags.FlagKey)
1314
envFilePath, _ := cmd.Flags().GetString(flags.FlagEnvFile)
1415
escapeFlag, _ := cmd.Flags().GetBool(FlagEscape)
16+
importFileFlag, _ := cmd.Flags().GetBool(FlagImportFile)
1517

1618
value := args[0]
19+
if importFileFlag {
20+
file, err := os.ReadFile(value)
21+
if err != nil {
22+
return fmt.Errorf("failed to read value from file: %w", err)
23+
}
24+
value = string(file)
25+
}
1726
if escapeFlag {
1827
value = env.EscapeSpecialChars(value)
1928
}

set/flags.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package set
22

33
const (
4-
FlagEscape = "escape"
4+
FlagEscape = "escape"
5+
FlagImportFile = "importFile"
56
)

set/run.go

+9
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package set
22

33
import (
44
"fmt"
5+
"os"
56

67
"github.com/spf13/cobra"
78
"github.com/u-yas/ennbu/env"
@@ -12,8 +13,16 @@ func Run(cmd *cobra.Command, args []string) error {
1213
key, _ := cmd.Flags().GetString(flags.FlagKey)
1314
envFilePath, _ := cmd.Flags().GetString(flags.FlagEnvFile)
1415
escapeFlag, _ := cmd.Flags().GetBool(FlagEscape)
16+
importFileFlag, _ := cmd.Flags().GetBool(FlagImportFile)
1517

1618
value := args[0]
19+
if importFileFlag {
20+
file, err := os.ReadFile(value)
21+
if err != nil {
22+
return fmt.Errorf("failed to read value from file: %w", err)
23+
}
24+
value = string(file)
25+
}
1726
if escapeFlag {
1827
value = env.EscapeSpecialChars(value)
1928
}

0 commit comments

Comments
 (0)