59 lines
1.9 KiB
Go
59 lines
1.9 KiB
Go
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
|
|
}
|