package main import ( "flag" "fmt" "os" "github.com/VeraeLLC/PrintToVeraeTimeStamp/internal/settings" "github.com/VeraeLLC/PrintToVeraeTimeStamp/internal/vlog" ) // openOnComplete applies the OpenOnComplete setting after a successful stamp. func openOnComplete(lj vlog.Job, certPDF string) { s, src := settings.Load() mode := s.OpenOnComplete if mode == settings.OpenNone { lj.Printf("open-on-complete: mode=none (from %s) — not opening", src) return } if _, err := os.Stat(certPDF); err != nil { lj.Errorf("open-on-complete: mode=%s target missing %q: %v", mode, certPDF, err) return } err := openResult(mode, certPDF) if err != nil { lj.Errorf("open-on-complete: mode=%s (from %s) target=%q FAILED: %v", mode, src, certPDF, err) return } lj.Printf("open-on-complete: mode=%s (from %s) target=%q OK", mode, src, certPDF) } // runConfig: verae-print config [--show] [--open-on-complete folder|pdf|none] [--file PATH | --machine] func runConfig(args []string) int { fs := flag.NewFlagSet("config", flag.ContinueOnError) open := fs.String("open-on-complete", "", "folder | pdf | none") file := fs.String("file", "", "config file to update (default ~/.verae/config.json)") machine := fs.Bool("machine", false, "update the all-users default file instead") if err := fs.Parse(args); err != nil { return 2 } path := settings.UserPath("") if *machine { path = settings.MachinePath() } if *file != "" { path = *file } if *open != "" { if err := settings.SetOpenOnComplete(path, *open); err != nil { fmt.Fprintln(os.Stderr, err) return 1 } vlog.Init("cli", false) vlog.Printf("config: openOnComplete=%s written to %s", settings.NormalizeOpen(*open), path) } s, src := settings.Load() fmt.Printf("openOnComplete=%s (from %s)\nuser file: %s\nmachine file: %s\n", s.OpenOnComplete, src, settings.UserPath(""), settings.MachinePath()) return 0 }