Add implicit state file support
Read implicit package list from /home/rick/.config/declpac or ~/.config/declpac
This commit is contained in:
@@ -57,6 +57,11 @@ docker
|
|||||||
# this is a comment
|
# this is a comment
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Implicit State File
|
||||||
|
|
||||||
|
If `$XDG_CONFIG_HOME/declpac` (or `~/.config/declpac` on fallback) exists, its
|
||||||
|
contents are automatically included in the package list.
|
||||||
|
|
||||||
### Options
|
### Options
|
||||||
|
|
||||||
| Flag | Alias | Description |
|
| Flag | Alias | Description |
|
||||||
|
|||||||
@@ -31,6 +31,13 @@ func ReadPackages(stateFiles []string) (map[string]bool, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
implicitStateFile := getImplicitStateFile()
|
||||||
|
if fileExists(implicitStateFile) {
|
||||||
|
if err := readStateFile(implicitStateFile, packages); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if err := readStdin(packages); err != nil {
|
if err := readStdin(packages); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -52,6 +59,19 @@ func expandPath(path string) string {
|
|||||||
return path
|
return path
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func fileExists(path string) bool {
|
||||||
|
_, err := os.Stat(path)
|
||||||
|
return err == nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func getImplicitStateFile() string {
|
||||||
|
cfgDir, _ := os.UserConfigDir()
|
||||||
|
if cfgDir == "" {
|
||||||
|
cfgDir = "~/.config"
|
||||||
|
}
|
||||||
|
return filepath.Join(cfgDir, "declpac")
|
||||||
|
}
|
||||||
|
|
||||||
func normalizePackageName(name string) string {
|
func normalizePackageName(name string) string {
|
||||||
name = strings.TrimSpace(name)
|
name = strings.TrimSpace(name)
|
||||||
if name == "" || strings.HasPrefix(name, "#") {
|
if name == "" || strings.HasPrefix(name, "#") {
|
||||||
|
|||||||
Reference in New Issue
Block a user