mirror of
https://github.com/sbrow/envr.git
synced 2026-02-28 04:21:45 -05:00
Compare commits
1 Commits
7cbc04cbf6
...
6c1ffaabff
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6c1ffaabff |
@@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Added new `check` command. ([cbd74f3](https://github.com/sbrow/envr/commit/cbd74f387e2e330b2557d07dd82ba05cc91300ac))
|
|
||||||
* Multiple scan includes are now supported. ([4273fa5](https://github.com/sbrow/envr/commit/4273fa58956d8736271a0af66202dca481126fe4))
|
* Multiple scan includes are now supported. ([4273fa5](https://github.com/sbrow/envr/commit/4273fa58956d8736271a0af66202dca481126fe4))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
11
app/db.go
11
app/db.go
@@ -326,15 +326,8 @@ func (db *Db) Delete(path string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Finds .env files in the filesystem that aren't present in the database.
|
// Finds .env files in the filesystem that aren't present in the database.
|
||||||
// path overrides the already configured
|
func (db *Db) Scan() ([]string, error) {
|
||||||
func (db *Db) Scan(paths []string) ([]string, error) {
|
all_paths, err := db.cfg.scan()
|
||||||
cfg := db.cfg
|
|
||||||
|
|
||||||
if paths != nil {
|
|
||||||
cfg.ScanConfig.Include = paths
|
|
||||||
}
|
|
||||||
|
|
||||||
all_paths, err := cfg.scan()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return []string{}, err
|
return []string{}, err
|
||||||
}
|
}
|
||||||
|
|||||||
109
cmd/check.go
109
cmd/check.go
@@ -1,109 +0,0 @@
|
|||||||
package cmd
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"os"
|
|
||||||
"path/filepath"
|
|
||||||
|
|
||||||
"github.com/sbrow/envr/app"
|
|
||||||
"github.com/spf13/cobra"
|
|
||||||
)
|
|
||||||
|
|
||||||
var checkCmd = &cobra.Command{
|
|
||||||
Use: "check [path]",
|
|
||||||
Short: "check if files in the current directory are backed up",
|
|
||||||
// TODO: Long description for new check command
|
|
||||||
Args: cobra.MaximumNArgs(1),
|
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
|
||||||
// Accept an optional path arg, default to current working directory
|
|
||||||
var checkPath string
|
|
||||||
if len(args) > 0 {
|
|
||||||
checkPath = args[0]
|
|
||||||
} else {
|
|
||||||
cwd, err := os.Getwd()
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("failed to get current working directory: %w", err)
|
|
||||||
}
|
|
||||||
checkPath = cwd
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get absolute path
|
|
||||||
absPath, err := filepath.Abs(checkPath)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("failed to get absolute path: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Open database
|
|
||||||
db, err := app.Open()
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("failed to open database: %w", err)
|
|
||||||
}
|
|
||||||
defer db.Close(app.ReadOnly)
|
|
||||||
|
|
||||||
// Check if the path is a file or directory
|
|
||||||
info, err := os.Stat(absPath)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("failed to stat path: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
var filesInPath []string
|
|
||||||
|
|
||||||
if info.IsDir() {
|
|
||||||
// Find .env files in the specified directory
|
|
||||||
if err := db.CanScan(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Scan only the specified path for .env files
|
|
||||||
filesInPath, err = db.Scan([]string{absPath})
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("failed to scan path for env files: %w", err)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Path is a file, just check this specific file
|
|
||||||
filesInPath = []string{absPath}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get all backed up files from the database
|
|
||||||
envFiles, err := db.List()
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("failed to list files from database: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check which files are not backed up
|
|
||||||
var notBackedUp []string
|
|
||||||
for _, file := range filesInPath {
|
|
||||||
isBackedUp := false
|
|
||||||
for _, envFile := range envFiles {
|
|
||||||
if envFile.Path == file {
|
|
||||||
isBackedUp = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if !isBackedUp {
|
|
||||||
notBackedUp = append(notBackedUp, file)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Display results
|
|
||||||
if len(notBackedUp) == 0 {
|
|
||||||
if len(filesInPath) == 0 {
|
|
||||||
fmt.Println("No .env files found in the specified directory.")
|
|
||||||
} else {
|
|
||||||
fmt.Println("✓ All .env files in the directory are backed up.")
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
fmt.Printf("Found %d .env file(s) that are not backed up:\n", len(notBackedUp))
|
|
||||||
for _, file := range notBackedUp {
|
|
||||||
fmt.Printf(" %s\n", file)
|
|
||||||
}
|
|
||||||
fmt.Println("\nRun 'envr sync' to back up these files.")
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
rootCmd.AddCommand(checkCmd)
|
|
||||||
}
|
|
||||||
@@ -28,7 +28,7 @@ var scanCmd = &cobra.Command{
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
files, err := db.Scan(nil)
|
files, err := db.Scan()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,6 @@ at before, restore your backup with:
|
|||||||
### SEE ALSO
|
### SEE ALSO
|
||||||
|
|
||||||
* [envr backup](envr_backup.md) - Import a .env file into envr
|
* [envr backup](envr_backup.md) - Import a .env file into envr
|
||||||
* [envr check](envr_check.md) - check if files in the current directory are backed up
|
|
||||||
* [envr deps](envr_deps.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 edit-config](envr_edit-config.md) - Edit your config with your default editor
|
||||||
* [envr init](envr_init.md) - Set up envr
|
* [envr init](envr_init.md) - Set up envr
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
## envr check
|
|
||||||
|
|
||||||
check if files in the current directory are backed up
|
|
||||||
|
|
||||||
```
|
|
||||||
envr check [path] [flags]
|
|
||||||
```
|
|
||||||
|
|
||||||
### Options
|
|
||||||
|
|
||||||
```
|
|
||||||
-h, --help help for check
|
|
||||||
```
|
|
||||||
|
|
||||||
### SEE ALSO
|
|
||||||
|
|
||||||
* [envr](envr.md) - Manage your .env files.
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user