complete fgj → fj rename: env vars, config migration, docs
- Rename env vars: FGJ_HOST → FJ_HOST, FGJ_TOKEN → FJ_TOKEN, FGJ_FORCE_TTY → FJ_FORCE_TTY, FGJ_PAGER → FJ_PAGER, FGJ_BINARY_PATH → FJ_BINARY_PATH (all with legacy fallback) - Auto-migrate ~/.config/fgj/ → ~/.config/fj/ on first run - Update man page title, README, CHANGELOG - Update test fixture labels from [FGJ E2E Test] to [FJ E2E Test]
This commit is contained in:
parent
cf7c0e0878
commit
c3e8ad67ed
9 changed files with 94 additions and 33 deletions
48
cmd/root.go
48
cmd/root.go
|
|
@ -2,7 +2,9 @@ package cmd
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
|
|
@ -52,6 +54,18 @@ func initConfig() {
|
|||
}
|
||||
|
||||
configDir := home + "/.config/fj"
|
||||
legacyDir := home + "/.config/fgj"
|
||||
|
||||
// Migrate from ~/.config/fgj/ if the new dir doesn't exist yet.
|
||||
if _, err := os.Stat(configDir); os.IsNotExist(err) {
|
||||
if info, err := os.Stat(legacyDir); err == nil && info.IsDir() {
|
||||
if copyErr := migrateConfigDir(legacyDir, configDir); copyErr == nil {
|
||||
fmt.Fprintln(ios.ErrOut, "notice: migrated config from ~/.config/fgj/ to ~/.config/fj/")
|
||||
fmt.Fprintln(ios.ErrOut, " you can remove ~/.config/fgj/ when ready")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_ = os.MkdirAll(configDir, 0755)
|
||||
|
||||
viper.AddConfigPath(configDir)
|
||||
|
|
@ -60,7 +74,7 @@ func initConfig() {
|
|||
}
|
||||
|
||||
viper.AutomaticEnv()
|
||||
viper.SetEnvPrefix("FGJ")
|
||||
viper.SetEnvPrefix("FJ")
|
||||
|
||||
_ = viper.ReadInConfig()
|
||||
}
|
||||
|
|
@ -127,3 +141,35 @@ func parseIssueArg(arg string) (int64, error) {
|
|||
}
|
||||
return strconv.ParseInt(arg, 10, 64)
|
||||
}
|
||||
|
||||
// migrateConfigDir copies all files from src to dst (one level, no subdirs).
|
||||
func migrateConfigDir(src, dst string) error {
|
||||
if err := os.MkdirAll(dst, 0755); err != nil {
|
||||
return err
|
||||
}
|
||||
entries, err := os.ReadDir(src)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, e := range entries {
|
||||
if e.IsDir() {
|
||||
continue
|
||||
}
|
||||
in, err := os.Open(filepath.Join(src, e.Name()))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
out, err := os.OpenFile(filepath.Join(dst, e.Name()), os.O_CREATE|os.O_WRONLY, 0600)
|
||||
if err != nil {
|
||||
in.Close()
|
||||
return err
|
||||
}
|
||||
_, err = io.Copy(out, in)
|
||||
in.Close()
|
||||
out.Close()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue