PrintToVeraeTimeStamp/cmd/verae-print/opencomplete.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
}