feat(config): add vhost config

This commit is contained in:
hgc 2023-04-13 13:21:58 +00:00
parent fe14b4c3ce
commit 46c162d494

34
main.go
View File

@ -13,7 +13,7 @@ import (
"github.com/gorilla/mux"
"github.com/landlock-lsm/go-landlock/landlock"
"github.com/spf13/viper"
"github.com/spf13/viper"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
@ -86,7 +86,7 @@ func UploadHandler(w http.ResponseWriter, r *http.Request) {
log.Info().Str("mtype", mtype.String()).Str("ext", mtype.Extension()).Int64("expiry", sanExpiry).Int64("url_len", sanUrlLen).Msg("Writing new file")
f, err := os.OpenFile("data/"+name, os.O_WRONLY|os.O_CREATE, 0644)
f, err := os.OpenFile(viper.GetString("filedir")+name, os.O_WRONLY|os.O_CREATE, 0644)
if err != nil {
log.Error().Err(err).Msg("Error opening a file for write")
w.Write([]byte("internal error\n"))
@ -96,7 +96,7 @@ func UploadHandler(w http.ResponseWriter, r *http.Request) {
io.Copy(f, file)
w.Write([]byte("https://u.filehole.org/" + name + "\n"))
w.Write([]byte("https://" + viper.GetString("vhost") + "/" + name + "\n"))
}
func ExpiryDoer() {
@ -112,7 +112,7 @@ func ExpiryDoer() {
continue
}
if time.Now().After(time.Unix(expiryTime, 0)) {
os.Remove("data/" + string(k))
os.Remove(viper.GetString("filedir") + string(k))
removed += 1
c.Delete()
}
@ -135,22 +135,22 @@ func main() {
viper.SetDefault("bind", "127.0.0.1:8000")
viper.SetDefault("database", "filehole.db")
viper.SetDefault("filedir", "./data")
viper.SetDefault("vhost", "127.0.0.1:8000")
viper.SetConfigName("config")
viper.SetConfigType("toml")
viper.AddConfigPath("/etc/filehole/")
viper.AddConfigPath(".")
viper.SetConfigName("config")
viper.SetConfigType("toml")
viper.AddConfigPath("/etc/filehole/")
viper.AddConfigPath(".")
if err := viper.ReadInConfig(); err != nil {
if _, ok := err.(viper.ConfigFileNotFoundError); !ok {
log.Error().Err(err).Msg("Failed to load a config file")
} else {
log.Info().Msg("Created config file since none were located")
}
}
if err := viper.ReadInConfig(); err != nil {
if _, ok := err.(viper.ConfigFileNotFoundError); !ok {
log.Error().Err(err).Msg("Failed to load a config file")
} else {
log.Info().Msg("Created config file since none were located")
}
}
var err error
var err error
db, err = bolt.Open(viper.GetString("database"), 0600, nil)
if err != nil {
log.Fatal().Err(err).Msg("dangerous database activity")