From 9718d34a757b66917747c1c4acfb9b35d154625b Mon Sep 17 00:00:00 2001 From: FChannel <> Date: Sat, 23 Apr 2022 12:44:38 -0700 Subject: added config package since WSJ config is ignored from .gitignore --- .gitignore | 3 ++- README.md | 2 +- config/config.go | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 config/config.go diff --git a/.gitignore b/.gitignore index 34e8b76..22ffe4e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ *~ #* public/ -config +config$ +config/config-init clientkey pem/ diff --git a/README.md b/README.md index c573a30..1b6081e 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ and to fix errors reported by `go vet` and make your code better with - Ensure you have Golang installed and set a correct `GOPATH` - `git clone` the software -- Copy `config-init` to `config` and change the values appropriately to reflect the instance. +- Copy `config-init` to `config/config-init` and change the values appropriately to reflect the instance. - Create the database, username, and password for psql that is used in the `config` file. - Build the server with `make` - Start the server with `./fchan`. diff --git a/config/config.go b/config/config.go new file mode 100644 index 0000000..d9e5a94 --- /dev/null +++ b/config/config.go @@ -0,0 +1,54 @@ +package config + +import ( + "bufio" + "log" + "os" + "strconv" + "strings" +) + +var Port = ":" + GetConfigValue("instanceport", "3000") +var TP = GetConfigValue("instancetp", "") +var Domain = GetConfigValue("instance", "") +var InstanceName = GetConfigValue("instancename", "") +var InstanceSummary = GetConfigValue("instancesummary", "") +var SiteEmail = GetConfigValue("emailaddress", "") //contact@fchan.xyz +var SiteEmailPassword = GetConfigValue("emailpass", "") +var SiteEmailServer = GetConfigValue("emailserver", "") //mail.fchan.xyz +var SiteEmailPort = GetConfigValue("emailport", "") //587 +var TorProxy = GetConfigValue("torproxy", "") //127.0.0.1:9050 +var PublicIndexing = strings.ToLower(GetConfigValue("publicindex", "false")) +var Salt = GetConfigValue("instancesalt", "") +var DBHost = GetConfigValue("dbhost", "localhost") +var DBPort, _ = strconv.Atoi(GetConfigValue("dbport", "5432")) +var DBUser = GetConfigValue("dbuser", "postgres") +var DBPassword = GetConfigValue("dbpass", "password") +var DBName = GetConfigValue("dbname", "server") +var Redis = GetConfigValue("redis", "redis://localhost") +var ActivityStreams = "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"" +var SupportedFiles = []string{"image/gif", "image/jpeg", "image/png", "image/webp", "image/apng", "video/mp4", "video/ogg", "video/webm", "audio/mpeg", "audio/ogg", "audio/wav", "audio/wave", "audio/x-wav"} +var Key string +var Themes []string + +func GetConfigValue(value string, ifnone string) string { + file, err := os.Open("config/config-init") + + if err != nil { + log.Print(err) + return ifnone + } + + defer file.Close() + + lines := bufio.NewScanner(file) + + for lines.Scan() { + line := strings.SplitN(lines.Text(), ":", 2) + if line[0] == value { + return line[1] + } + } + + return ifnone +} -- cgit v1.2.3