Make error message for missing watch list more friendly
This commit is contained in:
parent
69be2f890a
commit
d08ad53464
|
@ -64,6 +64,10 @@ func certspotterVersion() string {
|
||||||
return "unknown"
|
return "unknown"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func fileExists(filename string) bool {
|
||||||
|
_, err := os.Lstat(filename)
|
||||||
|
return err == nil
|
||||||
|
}
|
||||||
func homedir() string {
|
func homedir() string {
|
||||||
homedir, err := os.UserHomeDir()
|
homedir, err := os.UserHomeDir()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -85,6 +89,16 @@ func defaultConfigDir() string {
|
||||||
return filepath.Join(homedir(), ".certspotter")
|
return filepath.Join(homedir(), ".certspotter")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
func defaultWatchListPath() string {
|
||||||
|
return filepath.Join(defaultConfigDir(), "watchlist")
|
||||||
|
}
|
||||||
|
func defaultWatchListPathIfExists() string {
|
||||||
|
if fileExists(defaultWatchListPath()) {
|
||||||
|
return defaultWatchListPath()
|
||||||
|
} else {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func readWatchListFile(filename string) (monitor.WatchList, error) {
|
func readWatchListFile(filename string) (monitor.WatchList, error) {
|
||||||
file, err := os.Open(filename)
|
file, err := os.Open(filename)
|
||||||
|
@ -136,13 +150,17 @@ func main() {
|
||||||
flag.BoolVar(&flags.stdout, "stdout", false, "Write matching certificates to stdout")
|
flag.BoolVar(&flags.stdout, "stdout", false, "Write matching certificates to stdout")
|
||||||
flag.BoolVar(&flags.verbose, "verbose", false, "Be verbose")
|
flag.BoolVar(&flags.verbose, "verbose", false, "Be verbose")
|
||||||
flag.BoolVar(&flags.version, "version", false, "Print version and exit")
|
flag.BoolVar(&flags.version, "version", false, "Print version and exit")
|
||||||
flag.StringVar(&flags.watchlist, "watchlist", filepath.Join(defaultConfigDir(), "watchlist"), "File containing domain names to watch")
|
flag.StringVar(&flags.watchlist, "watchlist", defaultWatchListPathIfExists(), "File containing domain names to watch")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
if flags.version {
|
if flags.version {
|
||||||
fmt.Fprintf(os.Stdout, "certspotter version %s\n", certspotterVersion())
|
fmt.Fprintf(os.Stdout, "certspotter version %s\n", certspotterVersion())
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
if flags.watchlist == "" {
|
||||||
|
fmt.Fprintf(os.Stderr, "%s: watch list not found: please create %s or specify alternative path using -watchlist\n", programName, defaultWatchListPath())
|
||||||
|
os.Exit(2)
|
||||||
|
}
|
||||||
|
|
||||||
if len(flags.email) == 0 && len(flags.script) == 0 && flags.stdout == false {
|
if len(flags.email) == 0 && len(flags.script) == 0 && flags.stdout == false {
|
||||||
fmt.Fprintf(os.Stderr, "%s: at least one of -email, -script, or -stdout must be specified (see -help for details)\n", programName)
|
fmt.Fprintf(os.Stderr, "%s: at least one of -email, -script, or -stdout must be specified (see -help for details)\n", programName)
|
||||||
|
|
Loading…
Reference in New Issue