aptok/setup.go
Michael Demetriou 6a02d08d5d Fixes to enable following pixelfed
add requested list in actor (holds the follow requests that
haven't been rejected or accepted yet), load actor from memory
instead of disk when there's a new activity in our inbox and
other minor fixes
2019-09-20 16:21:21 +03:00

85 lines
2 KiB
Go

package activityserve
import (
"fmt"
"net/http"
"os"
"github.com/gologme/log"
"gopkg.in/ini.v1"
)
var slash = string(os.PathSeparator)
var baseURL = "http://example.com/"
var storage = "storage"
var userAgent = "activityserve"
var printer *log.Logger
const libName = "activityserve"
const version = "0.99"
var client = http.Client{}
// Setup sets our environment up
func Setup(configurationFile string, debug bool) *ini.File {
// read configuration file (config.ini)
if configurationFile == "" {
configurationFile = "config.ini"
}
cfg, err := ini.Load("config.ini")
if err != nil {
fmt.Printf("Fail to read file: %v", err)
os.Exit(1)
}
// Load base url from configuration file
baseURL = cfg.Section("general").Key("baseURL").String()
// check if it ends with a / and append one if not
if baseURL[len(baseURL)-1:] != "/" {
baseURL += "/"
}
// print it for our users
fmt.Println()
fmt.Println("Domain Name:", baseURL)
// Load storage location (only local filesystem supported for now) from config
storage = cfg.Section("general").Key("storage").String()
cwd, err := os.Getwd()
fmt.Println("Storage Location:", cwd+slash+storage)
fmt.Println()
SetupStorage(storage)
// Load user agent
userAgent = cfg.Section("general").Key("userAgent").String()
// I prefer long file so that I can click it in the terminal and open it
// in the editor above
log.SetFlags(log.Llongfile)
// log.SetFlags(log.LstdFlags | log.Lshortfile)
log.EnableLevel("warn")
// create a logger with levels but without prefixes for easier to read
// debug output
printer = log.New(os.Stdout, " ", 0)
if debug == true {
fmt.Println()
fmt.Println("debug mode on")
log.EnableLevel("info")
printer.EnableLevel("info")
}
return cfg
}
// SetupStorage creates storage
func SetupStorage(storage string) {
// prepare storage for foreign activities (activities we store that don't
// belong to us)
foreignDir := storage + slash + "foreign"
if _, err := os.Stat(foreignDir); os.IsNotExist(err) {
os.MkdirAll(foreignDir, 0755)
}
}