Browse Source

Add implicit state file support

Read implicit package list from /home/rick/.config/declpac or ~/.config/declpac
master
AI Bot 1 week ago committed by Riyyi
parent
commit
d59d5c084d
  1. 5
      README.md
  2. 20
      pkg/input/input.go

5
README.md

@ -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 |

20
pkg/input/input.go

@ -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, "#") {

Loading…
Cancel
Save