mirror of
https://github.com/sbrow/envr.git
synced 2025-12-29 23:47:39 -05:00
Compare commits
5 Commits
v0.1.1
...
c9c34ce771
| Author | SHA1 | Date | |
|---|---|---|---|
| c9c34ce771 | |||
| 17ce49cd2d | |||
| af0a9f9c4c | |||
| 4273fa5895 | |||
| bb3c0cdeee |
@@ -24,9 +24,11 @@ type SshKeyPair struct {
|
||||
}
|
||||
|
||||
type scanConfig struct {
|
||||
// TODO: Support multiple matchers
|
||||
Matcher string `json:"matcher"`
|
||||
// TODO: Support multiple excludes
|
||||
Exclude string `json:"exclude"`
|
||||
Include string `json:"include"`
|
||||
Include []string `json:"include"`
|
||||
}
|
||||
|
||||
// Create a fresh config with sensible defaults.
|
||||
@@ -47,7 +49,7 @@ func NewConfig(privateKeyPaths []string) Config {
|
||||
ScanConfig: scanConfig{
|
||||
Matcher: "\\.env",
|
||||
Exclude: "*.envrc",
|
||||
Include: "~",
|
||||
Include: []string{"~"},
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -109,17 +111,18 @@ func (c *Config) Save() error {
|
||||
|
||||
// Use fd to find all ignored .env files that match the config's parameters
|
||||
func (c Config) scan() (paths []string, err error) {
|
||||
searchPath, err := c.searchPath()
|
||||
searchPaths, err := c.searchPaths()
|
||||
if err != nil {
|
||||
return []string{}, err
|
||||
}
|
||||
|
||||
for _, searchPath := range searchPaths {
|
||||
// Find all files (including ignored ones)
|
||||
fmt.Printf("Searching for all files in \"%s\"...\n", searchPath)
|
||||
allCmd := exec.Command("fd", "-a", c.ScanConfig.Matcher, "-E", c.ScanConfig.Exclude, "-HI", searchPath)
|
||||
allOutput, err := allCmd.Output()
|
||||
if err != nil {
|
||||
return []string{}, err
|
||||
return paths, err
|
||||
}
|
||||
|
||||
allFiles := strings.Split(strings.TrimSpace(string(allOutput)), "\n")
|
||||
@@ -154,26 +157,31 @@ func (c Config) scan() (paths []string, err error) {
|
||||
}
|
||||
}
|
||||
|
||||
return ignoredFiles, nil
|
||||
paths = append(paths, ignoredFiles...)
|
||||
}
|
||||
|
||||
func (c Config) searchPath() (path string, err error) {
|
||||
include := c.ScanConfig.Include
|
||||
return paths, nil
|
||||
}
|
||||
|
||||
if include == "~" {
|
||||
func (c Config) searchPaths() (paths []string, err error) {
|
||||
homeDir, err := os.UserHomeDir()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return homeDir, nil
|
||||
return paths, err
|
||||
}
|
||||
|
||||
absPath, err := filepath.Abs(include)
|
||||
includes := c.ScanConfig.Include
|
||||
|
||||
for _, include := range includes {
|
||||
path := strings.Replace(include, "~", homeDir, 1)
|
||||
absPath, err := filepath.Abs(path)
|
||||
if err != nil {
|
||||
return "", err
|
||||
return paths, err
|
||||
}
|
||||
|
||||
return absPath, nil
|
||||
paths = append(paths, absPath)
|
||||
}
|
||||
|
||||
return paths, nil
|
||||
}
|
||||
|
||||
// TODO: Should this be private?
|
||||
|
||||
@@ -13,7 +13,7 @@ const (
|
||||
// fd
|
||||
Fd AvailableFeatures = 2
|
||||
// All features are present
|
||||
All AvailableFeatures = Git & Fd
|
||||
All AvailableFeatures = Git | Fd
|
||||
)
|
||||
|
||||
// Checks for available features.
|
||||
|
||||
@@ -8,8 +8,8 @@ import (
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var checkCmd = &cobra.Command{
|
||||
Use: "check",
|
||||
var depsCmd = &cobra.Command{
|
||||
Use: "deps",
|
||||
Short: "Check for missing binaries",
|
||||
Long: `envr relies on external binaries for certain functionality.
|
||||
|
||||
@@ -33,7 +33,7 @@ The check command reports on which binaries are available and which are not.`,
|
||||
}
|
||||
|
||||
// Check fd
|
||||
if features&app.Fd == 1 {
|
||||
if features&app.Fd == app.Fd {
|
||||
table.Append([]string{"fd", "✓ Available"})
|
||||
} else {
|
||||
table.Append([]string{"fd", "✗ Missing"})
|
||||
@@ -47,5 +47,5 @@ The check command reports on which binaries are available and which are not.`,
|
||||
}
|
||||
|
||||
func init() {
|
||||
rootCmd.AddCommand(checkCmd)
|
||||
rootCmd.AddCommand(depsCmd)
|
||||
}
|
||||
@@ -44,7 +44,7 @@ at before, restore your backup with:
|
||||
### SEE ALSO
|
||||
|
||||
* [envr backup](envr_backup.md) - Import a .env file into envr
|
||||
* [envr check](envr_check.md) - Check for missing binaries
|
||||
* [envr deps](envr_deps.md) - Check for missing binaries
|
||||
* [envr edit-config](envr_edit-config.md) - Edit your config with your default editor
|
||||
* [envr init](envr_init.md) - Set up envr
|
||||
* [envr list](envr_list.md) - View your tracked files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## envr check
|
||||
## envr deps
|
||||
|
||||
Check for missing binaries
|
||||
|
||||
@@ -9,13 +9,13 @@ envr relies on external binaries for certain functionality.
|
||||
The check command reports on which binaries are available and which are not.
|
||||
|
||||
```
|
||||
envr check [flags]
|
||||
envr deps [flags]
|
||||
```
|
||||
|
||||
### Options
|
||||
|
||||
```
|
||||
-h, --help help for check
|
||||
-h, --help help for deps
|
||||
```
|
||||
|
||||
### SEE ALSO
|
||||
Reference in New Issue
Block a user