Browse Source

Add tilde path expansion for state files

master
AI Bot 1 week ago committed by Riyyi
parent
commit
399a7157e2
  1. 34
      pkg/input/input.go

34
pkg/input/input.go

@ -3,6 +3,7 @@ package input
import ( import (
"bufio" "bufio"
"os" "os"
"path/filepath"
"strings" "strings"
) )
@ -10,7 +11,8 @@ func ReadPackages(stateFiles []string) (map[string]bool, error) {
packages := make(map[string]bool) packages := make(map[string]bool)
for _, file := range stateFiles { for _, file := range stateFiles {
if err := readStateFile(file, packages); err != nil { expanded := expandPath(file)
if err := readStateFile(expanded, packages); err != nil {
return nil, err return nil, err
} }
} }
@ -22,6 +24,28 @@ func ReadPackages(stateFiles []string) (map[string]bool, error) {
return packages, nil return packages, nil
} }
// -----------------------------------------
// private
func expandPath(path string) string {
if strings.HasPrefix(path, "~/") {
home, err := os.UserHomeDir()
if err != nil {
return path
}
return filepath.Join(home, path[2:])
}
return path
}
func normalizePackageName(name string) string {
name = strings.TrimSpace(name)
if name == "" || strings.HasPrefix(name, "#") {
return ""
}
return name
}
func readStateFile(path string, packages map[string]bool) error { func readStateFile(path string, packages map[string]bool) error {
file, err := os.Open(path) file, err := os.Open(path)
if err != nil { if err != nil {
@ -60,11 +84,3 @@ func readStdin(packages map[string]bool) error {
return scanner.Err() return scanner.Err()
} }
func normalizePackageName(name string) string {
name = strings.TrimSpace(name)
if name == "" || strings.HasPrefix(name, "#") {
return ""
}
return name
}

Loading…
Cancel
Save