commit 27038bbf56cd938d58a8e52da8dec6a65c91f569
parent 021807273e420bb67352d6ad2841b11eaca42d8a
Author: weetat <wtenison@protonmail.com>
Date: Wed, 26 Feb 2025 22:42:35 +0000
Move page handler into network/routes.go
Server init now reads its config through mfs.ReadFileJSON.
Diffstat:
2 files changed, 54 insertions(+), 57 deletions(-)
diff --git a/src/network/network.go b/src/network/network.go
@@ -1,13 +1,11 @@
package network
import (
- "encoding/json"
"fmt"
"log"
"net/http"
"os"
"path/filepath"
- "text/template"
mfs "miki/src/filesystem"
)
@@ -19,57 +17,10 @@ var serverInfo struct {
keyFile string
}
-var mux *http.ServeMux
-
-func handlePageDefault(w http.ResponseWriter, r *http.Request) {
-
- // Produce URL path to directory relation.
- _r, _err := mfs.MakeDirectorySig(filepath.Join(mfs.Dirs["web"], r.URL.String()), 0, mfs.FilePatternHTML)
- if _err != nil {
- log.Printf("_ERROR\tnetwork:handlePageDefault(\"/\"):%s", _err)
- http.NotFound(w, r)
- return
- }
-
- // Collect HTML template files from directory.
- _rPkg, _err := mfs.MakeDirectoryPkg(_r)
- if _err != nil {
- log.Printf("_ERROR\tnetwork:handlePageDefault(\"/\"):%s", _err)
- http.NotFound(w, r)
- return
- }
-
- // Add 'global' file dependencies.
- _rPkg.DependencyFiles = append(_rPkg.DependencyFiles, mfs.WebGlobalPkg.DependencyFiles...)
-
- // Create template from package.
- _tmpl, _err := template.ParseFiles(_rPkg.DependencyFiles...)
- if _err != nil {
- log.Printf("_ERROR\tnetwork:handlePageDefault(\"/\"):%s", _err)
- http.Error(w, "_ERROR:network:handlePageDefault(\"/\"):template.ParseFiles", 500)
- return
- }
-
- // Render template.
- if _err = _tmpl.ExecuteTemplate(w, "index.html", _rPkg.DependencyData); _err != nil {
- log.Printf("_ERROR\tnetwork:handlePageDefault(\"/\"):%s", _err)
- http.Error(w, "_ERROR:network:handlePageDefault(\"/\"):template.ExecuteTemplate", 500)
- return
- }
-
- log.Printf("DONE\thandlePageDefault:%s", r.URL)
-}
-
func Init() {
//// GET SERVER INFO
- _siData, _err := os.ReadFile("sys/config.json")
- if _err != nil {
- log.Panicln("__PANIC\tnetwork:Init:os.ReadFile:config.json:" + _err.Error())
- return
- }
-
type ServerInfo struct {
Port string `json:"port"`
SslPath string `json:"ssl-path"`
@@ -80,10 +31,7 @@ func Init() {
ServerInfo ServerInfo `json:"server-info"`
}
- if _err = json.Unmarshal(_siData, &_siDataStruct); _err != nil {
- log.Panicln("__PANIC\tnetwork:Init:json.Unmarshal:config.json:" + _err.Error())
- return
- }
+ mfs.ReadFileJSON("sys/config.json", &_siDataStruct)
serverInfo.port = _siDataStruct.ServerInfo.Port
serverInfo.sslPath = _siDataStruct.ServerInfo.SslPath
@@ -94,13 +42,11 @@ func Init() {
//// CHECK FOR VALID CERT INFO
- _tls_cert_path := filepath.Join(_siDataStruct.ServerInfo.SslPath, _siDataStruct.ServerInfo.CertFile)
- if _, err := os.Stat(_tls_cert_path); err != nil {
+ if _, err := os.Stat(serverInfo.certFile); err != nil {
log.Panicf("__PANIC\tnetwork:Init:%s", err)
}
- _tls_key_path := filepath.Join(_siDataStruct.ServerInfo.SslPath, _siDataStruct.ServerInfo.KeyFile)
- if _, err := os.Stat(_tls_key_path); err != nil {
+ if _, err := os.Stat(serverInfo.keyFile); err != nil {
log.Panicf("__PANIC\tnetwork:Init:%s", err)
}
diff --git a/src/network/routes.go b/src/network/routes.go
@@ -0,0 +1,51 @@
+package network
+
+import (
+ "log"
+ "net/http"
+ "path/filepath"
+ "text/template"
+
+ mfs "miki/src/filesystem"
+)
+
+var mux *http.ServeMux
+
+func handlePageDefault(w http.ResponseWriter, r *http.Request) {
+
+ // Produce URL path to directory relation.
+ _r, _err := mfs.MakeDirectorySig(filepath.Join(mfs.Dirs["web"], r.URL.String()), 0, mfs.FilePatternHTML)
+ if _err != nil {
+ log.Printf("_ERROR\tnetwork:handlePageDefault(\"/\"):%s", _err)
+ http.NotFound(w, r)
+ return
+ }
+
+ // Collect HTML template files from directory.
+ _rPkg, _err := mfs.MakeDirectoryPkg(_r)
+ if _err != nil {
+ log.Printf("_ERROR\tnetwork:handlePageDefault(\"/\"):%s", _err)
+ http.NotFound(w, r)
+ return
+ }
+
+ // Add 'global' file dependencies.
+ _rPkg.DependencyFiles = append(_rPkg.DependencyFiles, mfs.WebGlobalPkg.DependencyFiles...)
+
+ // Create template from package.
+ _tmpl, _err := template.ParseFiles(_rPkg.DependencyFiles...)
+ if _err != nil {
+ log.Printf("_ERROR\tnetwork:handlePageDefault(\"/\"):%s", _err)
+ http.Error(w, "_ERROR:network:handlePageDefault(\"/\"):template.ParseFiles", 500)
+ return
+ }
+
+ // Render template.
+ if _err = _tmpl.ExecuteTemplate(w, "index.html", _rPkg.DependencyData); _err != nil {
+ log.Printf("_ERROR\tnetwork:handlePageDefault(\"/\"):%s", _err)
+ http.Error(w, "_ERROR:network:handlePageDefault(\"/\"):template.ExecuteTemplate", 500)
+ return
+ }
+
+ log.Printf("DONE\thandlePageDefault:%s", r.URL)
+}