miki

Miki: personal wiki with the fmd markup format
git clone https://wtenison.com/repo/miki.git
Log | Files | Refs | README | LICENSE

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:
Msrc/network/network.go | 60+++---------------------------------------------------------
Asrc/network/routes.go | 51+++++++++++++++++++++++++++++++++++++++++++++++++++
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) +}