shithub: hell

Download patch

ref: 482ed92dbc236887d206a1b3f3d14c095ecdc2f4
parent: 3521700b982daaf6b4d5e0c4055f251372f07b40
author: penny <penny@limitedideas.org>
date: Tue Sep 30 21:21:35 EDT 2025

switch to TOML for config file

--- a/config.go
+++ b/config.go
@@ -1,30 +1,31 @@
 package main
 
 import (
-	"encoding/json"
 	"fmt"
 	"io/ioutil"
 	"os"
 	"time"
 	"strings"
+	
+	"github.com/BurntSushi/toml"
 )
 
 const configFileName = ".hell.conf"
 
 type Hellprefs struct {
-	Apidelay float32 `json:"apidelay"`
-	Save_Location string `json:"save_location"`
-	Browser string `json:"browser"`
-	ImageViewer string `json:"image_viewer"`
-	MediaImport string `json:"media_importer"`
+	Apidelay float32 `toml:"apidelay"`
+	Save_Location string `toml:"save_location"`
+	Browser string `toml:"browser"`
+	ImageViewer string `toml:"image_viewer"`
+	MediaImport string `toml:"media_importer"`
 }
 
 type account struct {
-	MASTODON_CLIENT_ID     string    `json:"MASTODON_CLIENT_ID"`
-	MASTODON_CLIENT_SECRET string    `json:"MASTODON_CLIENT_SECRET"`
-	MASTODON_ACCESS_TOKEN  string    `json:"MASTODON_ACCESS_TOKEN"`
-	URL                    string    `json:"URL"`
-	Preferences            Hellprefs `json:"preferences"`
+	MASTODON_CLIENT_ID     string    `toml:"MASTODON_CLIENT_ID"`
+	MASTODON_CLIENT_SECRET string    `toml:"MASTODON_CLIENT_SECRET"`
+	MASTODON_ACCESS_TOKEN  string    `toml:"MASTODON_ACCESS_TOKEN"`
+	URL                    string    `toml:"URL"`
+	Preferences            Hellprefs `toml:"preferences"`
 }
 
 func (prefs *Hellprefs) ApiDelayTime() time.Duration {
@@ -95,7 +96,7 @@
 
 		config.Preferences = initPrefs()
 
-		data, err := json.MarshalIndent(config, "", "  ")
+		data, err := toml.Marshal(config)
 		if err != nil {
 			return nil, fmt.Errorf("error marshalling config: %w", err)
 		}
@@ -113,7 +114,7 @@
 		return nil, fmt.Errorf("error reading config file: %w", err)
 	}
 
-	err = json.Unmarshal(data, config)
+	err = toml.Unmarshal(data, config)
 	if err != nil {
 		return nil, fmt.Errorf("error unmarshalling config: %w", err)
 	}
@@ -122,7 +123,7 @@
 	config.Preferences = *prefs
 
 	if fixed {
-		data, err = json.MarshalIndent(config, "", "  ")
+		data, err = toml.Marshal(config)
 		if err != nil {
 			return nil, fmt.Errorf("error marshalling config: %w", err)
 		}
--- a/go.mod
+++ b/go.mod
@@ -12,6 +12,7 @@
 
 require (
 	codeberg.org/penny64/hellclient-go-mastodon v0.0.0-20250923211910-cfaf18532c25 // indirect
+	github.com/BurntSushi/toml v1.5.0 // indirect
 	github.com/google/go-cmp v0.6.0 // indirect
 	github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 // indirect
 	github.com/gorilla/websocket v1.5.3 // indirect
--- a/go.sum
+++ b/go.sum
@@ -1,5 +1,7 @@
 codeberg.org/penny64/hellclient-go-mastodon v0.0.0-20250923211910-cfaf18532c25 h1:ou5aQCb1QfkralqKoTJ1XUm4OKO7igrC/VBRj8P1eOY=
 codeberg.org/penny64/hellclient-go-mastodon v0.0.0-20250923211910-cfaf18532c25/go.mod h1:uBGYW1AuCWBfm/LaIH4X4SnuWGWcSP4DNH/v/KUUMj8=
+github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
+github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
 github.com/ergochat/readline v0.1.3 h1:/DytGTmwdUJcLAe3k3VJgowh5vNnsdifYT6uVaf4pSo=
 github.com/ergochat/readline v0.1.3/go.mod h1:o3ux9QLHLm77bq7hDB21UTm6HlV2++IPDMfIfKDuOgY=
 github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
--- a/mastodon.go
+++ b/mastodon.go
@@ -19,7 +19,7 @@
 		Server:       "https://eldritch.cafe",
 		ClientName:   "hellclient",
 		Scopes:       "read write follow",
-		Website:      "https://github.com/mattn/go-mastodon",
+		Website:      "https://codeberg.org/penny64/hellclient",
 		RedirectURIs: "urn:ietf:wg:oauth:2.0:oob",
 	}
 
--