From d094648861ee80ed49ec2f764015ded2e26451f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AB=8F=E8=A8=AA=E5=AD=90?= Date: Mon, 17 Jul 2023 02:00:40 +0900 Subject: [PATCH] =?UTF-8?q?NetBSD=E5=AF=BE=E5=BF=9C=20+=20IP=E3=82=A2?= =?UTF-8?q?=E3=83=89=E3=83=AC=E3=82=B9=E3=82=92=E8=A8=AD=E5=AE=9A=E3=81=99?= =?UTF-8?q?=E3=82=8B=E6=A7=98=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 ++ config.go | 30 ++++++++++++++++++++++++------ config.json | 3 ++- main.go | 6 +++++- srv.go | 4 ++-- 5 files changed, 35 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4007733..513f355 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # 1.1.0 * 言語はliblocale化 * 複数言語対応 +* NetBSD対応 +* IPアドレスを設定する様に # 1.0.0 * PHPからGoに交換しました diff --git a/config.go b/config.go index 421411b..c123fea 100644 --- a/config.go +++ b/config.go @@ -5,14 +5,15 @@ import ( "fmt" "runtime" "encoding/json" + "io/ioutil" + "errors" ) type Config struct { - configpath, webpath, datapath, domain string + configpath, webpath, datapath, domain, ip string } -func getconf () Config { - var payload map[string]interface{} +func getconf () (Config, error) { var cnf Config // バイナリ、データ、及びFreeBSDとNetBSDの場合、コンフィグ @@ -36,14 +37,31 @@ func getconf () Config { } // コンフィグファイルがなければ、死ね - data, err := os.ReadFile(cnf.configpath) + data, err := ioutil.ReadFile(cnf.configpath) if err != nil { - fmt.Println("エラー:", err) + fmt.Println("confif.jsonを開けられません:", err) + return cnf, errors.New("コンフィグファイルは " + cnf.configpath + " に創作して下さい。") } + + var payload map[string]interface{} json.Unmarshal(data, &payload) + if payload["webpath"] == nil { + return cnf, errors.New("「webpath」の値が設置していません。") + } + if payload["domain"] == nil { + return cnf, errors.New("「domain」の値が設置していません。") + } + if payload["ip"] == nil { + return cnf, errors.New("「ip」の値が設置していません。") + } + if _, err := os.Stat(payload["webpath"].(string)); err != nil { + fmt.Printf("%v\n", err) + return cnf, errors.New("mkdiorコマンドをつかって、 " + payload["webpath"].(string)) + } cnf.webpath = payload["webpath"].(string) // データパス cnf.domain = payload["domain"].(string) // ドメイン名 + cnf.ip = payload["ip"].(string) // IP payload = nil // もういらなくなった - return cnf + return cnf, nil } diff --git a/config.json b/config.json index f4c5703..3e269bf 100644 --- a/config.json +++ b/config.json @@ -1,4 +1,5 @@ { "webpath": "/var/www/htdocs/hozonsite", - "domain": "https://hozon.site" + "domain": "https://hozon.site", + "ip": "0.0.0.0" } diff --git a/main.go b/main.go index 6731f24..b7cae25 100644 --- a/main.go +++ b/main.go @@ -18,7 +18,11 @@ func help () { } func main () { - cnf := getconf() // コンフィグファイル + cnf, err := getconf() // コンフィグファイル + if err != nil { + fmt.Println(err) + return + } args := os.Args // コマンドラインのパラメートル if len(args) == 2 { if args[1] == "-v" { // バージョンを表示 diff --git a/srv.go b/srv.go index b4240fa..bdcad09 100644 --- a/srv.go +++ b/srv.go @@ -204,6 +204,6 @@ func serv (cnf Config, port int) { http.HandleFunc("/archive/", archiveHandler(cnf)) http.HandleFunc("/", siteHandler(cnf)) - fmt.Println(fmt.Sprint("http://127.0.0.1:", port, " でサーバーを実行中。終了するには、CTRL+Cを押して下さい。")) - http.ListenAndServe(fmt.Sprint(":", port), nil) + fmt.Println(fmt.Sprint("http://" + cnf.ip + ":", port, " でサーバーを実行中。終了するには、CTRL+Cを押して下さい。")) + http.ListenAndServe(fmt.Sprint(cnf.ip + ":", port), nil) }