NetBSD対応 + IPアドレスを設定する様に

このコミットが含まれているのは:
守矢諏訪子 2023-07-17 02:00:40 +09:00
コミット d094648861
5個のファイルの変更35行の追加10行の削除

ファイルの表示

@ -1,6 +1,8 @@
# 1.1.0
* 言語はliblocale化
* 複数言語対応
* NetBSD対応
* IPアドレスを設定する様に
# 1.0.0
* PHPから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
}

ファイルの表示

@ -1,4 +1,5 @@
{
"webpath": "/var/www/htdocs/hozonsite",
"domain": "https://hozon.site"
"domain": "https://hozon.site",
"ip": "0.0.0.0"
}

ファイルの表示

@ -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" { // バージョンを表示

4
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)
}