Move some consts around

This commit is contained in:
tsmethurst 2021-03-04 12:07:24 +01:00
parent 54c4b8de20
commit 645ea31856
3 changed files with 13 additions and 52 deletions

View file

@ -20,6 +20,8 @@
// Don't judge me.
package consts
import "regexp"
// FlagNames is used for storing the names of the various flags used for
// initializing and storing urfavecli flag variables.
type FlagNames struct {
@ -75,3 +77,6 @@ func GetEnvNames() FlagNames {
DbDatabase: "GTS_DB_DATABASE",
}
}
var IPV4Regex = regexp.MustCompile(`^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$`)
var HostnameRegex = regexp.MustCompile(`^(?:[a-z0-9]+(?:-[a-z0-9]+)*\.)+[a-z]{2,}$`)

View file

@ -1,44 +0,0 @@
/*
GoToSocial
Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package db
import "regexp"
const (
/*
general db defaults
*/
// default database to use in whatever db implementation we have
defaultDatabase string = "gotosocial"
// default address should in most cases be overwritten
defaultAddress string = "localhost"
/*
implementation-specific defaults
*/
// widely-recognised default postgres port
postgresDefaultPort int = 5432
// default user should in most cases be overwritten
postgresDefaultUser string = "postgres"
)
var ipv4Regex = regexp.MustCompile(`^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$`)
var hostnameRegex = regexp.MustCompile(`^(?:[a-z0-9]+(?:-[a-z0-9]+)*\.)+[a-z]{2,}$`)

View file

@ -28,6 +28,7 @@ import (
"github.com/go-fed/activity/streams/vocab"
"github.com/go-pg/pg"
"github.com/gotosocial/gotosocial/internal/consts"
"github.com/sirupsen/logrus"
)
@ -100,23 +101,22 @@ func derivePGOptions(config *Config) (*pg.Options, error) {
return nil, fmt.Errorf("expected db type of %s but got %s", dbTypePostgres, config.Type)
}
// use sensible default port
var port int = config.Port
if port == 0 {
port = postgresDefaultPort
// validate port
if config.Port == 0 {
return nil, errors.New("no port set")
}
// validate address
if config.Address == "" {
config.Address = defaultAddress
return nil, errors.New("no address set")
}
if !hostnameRegex.MatchString(config.Address) && !ipv4Regex.MatchString(config.Address) && config.Address != "localhost" {
if !consts.HostnameRegex.MatchString(config.Address) && !consts.IPV4Regex.MatchString(config.Address) && config.Address != "localhost" {
return nil, fmt.Errorf("address %s was neither an ipv4 address nor a valid hostname", config.Address)
}
// validate username
if config.User == "" {
config.User = postgresDefaultUser
return nil, errors.New("no user set")
}
// validate that there's a password
@ -126,7 +126,7 @@ func derivePGOptions(config *Config) (*pg.Options, error) {
// validate database
if config.Database == "" {
config.Database = defaultDatabase
return nil, errors.New("no database set")
}
// We can rely on the pg library we're using to set