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. // Don't judge me.
package consts package consts
import "regexp"
// FlagNames is used for storing the names of the various flags used for // FlagNames is used for storing the names of the various flags used for
// initializing and storing urfavecli flag variables. // initializing and storing urfavecli flag variables.
type FlagNames struct { type FlagNames struct {
@ -75,3 +77,6 @@ func GetEnvNames() FlagNames {
DbDatabase: "GTS_DB_DATABASE", 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-fed/activity/streams/vocab"
"github.com/go-pg/pg" "github.com/go-pg/pg"
"github.com/gotosocial/gotosocial/internal/consts"
"github.com/sirupsen/logrus" "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) return nil, fmt.Errorf("expected db type of %s but got %s", dbTypePostgres, config.Type)
} }
// use sensible default port // validate port
var port int = config.Port if config.Port == 0 {
if port == 0 { return nil, errors.New("no port set")
port = postgresDefaultPort
} }
// validate address // validate address
if config.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) return nil, fmt.Errorf("address %s was neither an ipv4 address nor a valid hostname", config.Address)
} }
// validate username // validate username
if config.User == "" { if config.User == "" {
config.User = postgresDefaultUser return nil, errors.New("no user set")
} }
// validate that there's a password // validate that there's a password
@ -126,7 +126,7 @@ func derivePGOptions(config *Config) (*pg.Options, error) {
// validate database // validate database
if config.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 // We can rely on the pg library we're using to set