[PATCH] Add an error message for every error
Export this patch
diff --git a/hcwiki.go b/hcwiki.go
index 40442de..9e10ab3 100644
--- a/hcwiki.go
+++ b/hcwiki.go
@@ -7,7 +7,6 @@ import (
"log"
"net/url"
"os"
- "log"
"os/exec"
"path"
"strings"
@@ -34,7 +33,7 @@ type frontMatter struct {
func validateLink(link string) string {
linkURL, err := url.Parse(link)
if err != nil {
- panic(err)
+ log.Fatalf("%v: cannot parse link (%v)", link, err)
}
if linkURL.Scheme != "" {
return "invalid.gmi"
@@ -50,14 +49,14 @@ func parseGmi(filename string, conf config) map[string]interface{} {
source := conf.PathToSource + "/" + filename
file, err := os.Open(source)
if err != nil {
- panic(err)
+ log.Fatalf("%v: no such file or directory (%v)", source, err)
}
matter := front.NewMatter()
matter.Handle("---", front.YAMLHandler)
fmatter, body, err := matter.Parse(file)
if err != nil {
- panic(err)
+ log.Fatalf("%v: cannot parse front matter (%v)", source, err)
}
newFilename := strings.Replace(filename, path.Ext(filename), ".gmi", 1) // dark magic that could break at any time 🎵
@@ -67,7 +66,7 @@ func parseGmi(filename string, conf config) map[string]interface{} {
page, err := gemtext.ParsePage(body)
if err != nil {
- panic(err)
+ log.Fatalf("%v: invalid gemtext (%v)", source, err)
}
for i, item := range page {
@@ -131,7 +130,7 @@ func loadTags(conf config) map[string]interface{} {
rawJSON, err := os.ReadFile(conf.TagFile)
if err != nil {
- log.Fatalf("Cannot open %v: %v", conf.TagFile, err)
+ log.Fatalf("%v: no such file or directory (%v)", conf.TagFile, err)
}
json.Unmarshal(rawJSON, &tags)
@@ -144,7 +143,7 @@ func buildFiles(conf config) map[string]interface{} {
files, err := ioutil.ReadDir(conf.PathToSource)
if err != nil {
- panic(err)
+ log.Fatalf("%v: not a directory (%v)", conf.PathToSource, err)
}
for _, file := range files {
@@ -166,11 +165,11 @@ func main() {
var conf config
tomlData, err := os.ReadFile("config.toml")
if err != nil {
- panic(err)
+ log.Fatalf("Cannot open file 'config.toml': %v", err)
}
- if _, err := toml.Decode(string(tomlData), &conf); err != nil {
- panic(err)
+ if _, err := toml.Decode(string(tomlData), &conf); err != nil {
+ log.Fatalf("Cannot decode 'config.toml: %v", err)
}
usage := `hcwiki - the hack club tilde wiki
@@ -226,7 +225,7 @@ Usage:
} else if arguments["list"] == true {
files, err := ioutil.ReadDir(conf.PathToSource)
if err != nil {
- panic(err)
+ log.Fatalf("Cannot open %v: no such fiile or directory", conf.PathToSource)
}
for _, file := range files {
--
2.33.0