neatnote: git.sr.ht/~humaid/neatnote/modules/settings Index | Files

package settings

import "git.sr.ht/~humaid/neatnote/modules/settings"

Neat Note. A notes sharing platform for university students. Copyright (C) 2020 Humaid AlQassimi

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 <https://www.gnu.org/licenses/>.

Index

Package Files

settings.go

Constants

const (
    // MySQL indicates to use the MySQL database driver.
    MySQL = iota
    // SQLite indicates to use the SQLite database driver.
    SQLite
)

Variables

var (
    // WorkingDir is the current working directory of the project.
    WorkingDir string
    // ConfigPath is the configuration file name.
    ConfigPath = "config.toml"
    // Config is where the current configuration is loaded.
    Config Configuration
    // StartTime is the time when the server started.
    StartTime = time.Now()
)

func LoadConfig Uses

func LoadConfig()

LoadConfig loads the configuration file from disk. It will also generate one if it doesn't exist.

type Configuration Uses

type Configuration struct {
    SiteName        string                // SiteName is the name of the site.
    SitePort        string                // SitePort is the port to run the web server on.
    DevMode         bool                  // DevMode is whether to disable authentication for development.
    UniEmailDomain  string                // UniEmailDomain is the university domain for login.
    EmailAddress    string                // EmailAddress is the email address which sends the OTPs.
    EmailPassword   string                // EmailPassword is the password of the email used to send OTPs.
    EmailSMTPServer string                // EmailSMTPServer is the SMTP server including the port.
    DBConfig        DatabaseConfiguration // DBConfig is the database configuration.
    Badges          []string              // Badges is the available badges which the users can use.
}

Configuration represents the configuration file format.

type DBType Uses

type DBType int

DBType represents the type of the database driver which will be used.

type DatabaseConfiguration Uses

type DatabaseConfiguration struct {
    Type     DBType // Type refers to which database driver to use.
    Host     string // Host refers to the host of the database (MySQL only).
    Name     string // Name refers to the name of the database (MySQL only).
    User     string // User refers to the user of the database (MySQL only).
    Password string // Password refers to the database passsword (MySQL only).
    Path     string // Path refers to the database file path (SQLite only).
}

DatabaseConfiguration represents the general database configuration for all database drivers.

Package settings imports 7 packages (graph) and is imported by 4 packages. Updated 2020-10-27. Refresh now. Tools for package owners.