summaryrefslogtreecommitdiff
path: root/cmd/gotosocial/flag
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/gotosocial/flag')
-rw-r--r--cmd/gotosocial/flag/admin.go62
-rw-r--r--cmd/gotosocial/flag/global.go46
-rw-r--r--cmd/gotosocial/flag/server.go117
-rw-r--r--cmd/gotosocial/flag/usage.go82
4 files changed, 0 insertions, 307 deletions
diff --git a/cmd/gotosocial/flag/admin.go b/cmd/gotosocial/flag/admin.go
deleted file mode 100644
index e3829954f..000000000
--- a/cmd/gotosocial/flag/admin.go
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- GoToSocial
- Copyright (C) 2021-2022 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 flag
-
-import (
- "github.com/spf13/cobra"
- "github.com/superseriousbusiness/gotosocial/internal/config"
-)
-
-// AdminAccount attaches flags pertaining to admin account actions.
-func AdminAccount(cmd *cobra.Command, values config.Values) {
- cmd.Flags().String(config.Keys.AdminAccountUsername, "", usage.AdminAccountUsername) // REQUIRED
- if err := cmd.MarkFlagRequired(config.Keys.AdminAccountUsername); err != nil {
- panic(err)
- }
-}
-
-// AdminAccountPassword attaches flags pertaining to admin account password reset.
-func AdminAccountPassword(cmd *cobra.Command, values config.Values) {
- AdminAccount(cmd, values)
- cmd.Flags().String(config.Keys.AdminAccountPassword, "", usage.AdminAccountPassword) // REQUIRED
- if err := cmd.MarkFlagRequired(config.Keys.AdminAccountPassword); err != nil {
- panic(err)
- }
-}
-
-// AdminAccountCreate attaches flags pertaining to admin account creation.
-func AdminAccountCreate(cmd *cobra.Command, values config.Values) {
- AdminAccount(cmd, values)
- cmd.Flags().String(config.Keys.AdminAccountPassword, "", usage.AdminAccountPassword) // REQUIRED
- if err := cmd.MarkFlagRequired(config.Keys.AdminAccountPassword); err != nil {
- panic(err)
- }
- cmd.Flags().String(config.Keys.AdminAccountEmail, "", usage.AdminAccountEmail) // REQUIRED
- if err := cmd.MarkFlagRequired(config.Keys.AdminAccountEmail); err != nil {
- panic(err)
- }
-}
-
-// AdminTrans attaches flags pertaining to import/export commands.
-func AdminTrans(cmd *cobra.Command, values config.Values) {
- cmd.Flags().String(config.Keys.AdminTransPath, "", usage.AdminTransPath) // REQUIRED
- if err := cmd.MarkFlagRequired(config.Keys.AdminTransPath); err != nil {
- panic(err)
- }
-}
diff --git a/cmd/gotosocial/flag/global.go b/cmd/gotosocial/flag/global.go
deleted file mode 100644
index 173180024..000000000
--- a/cmd/gotosocial/flag/global.go
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- GoToSocial
- Copyright (C) 2021-2022 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 flag
-
-import (
- "github.com/spf13/cobra"
- "github.com/superseriousbusiness/gotosocial/internal/config"
-)
-
-// Global attaches flags that are common to all commands, aka persistent commands.
-func Global(cmd *cobra.Command, values config.Values) {
- // general stuff
- cmd.PersistentFlags().String(config.Keys.ApplicationName, values.ApplicationName, usage.ApplicationName)
- cmd.PersistentFlags().String(config.Keys.Host, values.Host, usage.Host)
- cmd.PersistentFlags().String(config.Keys.AccountDomain, values.AccountDomain, usage.AccountDomain)
- cmd.PersistentFlags().String(config.Keys.Protocol, values.Protocol, usage.Protocol)
- cmd.PersistentFlags().String(config.Keys.LogLevel, values.LogLevel, usage.LogLevel)
- cmd.PersistentFlags().Bool(config.Keys.LogDbQueries, values.LogDbQueries, usage.LogDbQueries)
- cmd.PersistentFlags().String(config.Keys.ConfigPath, values.ConfigPath, usage.ConfigPath)
-
- // database stuff
- cmd.PersistentFlags().String(config.Keys.DbType, values.DbType, usage.DbType)
- cmd.PersistentFlags().String(config.Keys.DbAddress, values.DbAddress, usage.DbAddress)
- cmd.PersistentFlags().Int(config.Keys.DbPort, values.DbPort, usage.DbPort)
- cmd.PersistentFlags().String(config.Keys.DbUser, values.DbUser, usage.DbUser)
- cmd.PersistentFlags().String(config.Keys.DbPassword, values.DbPassword, usage.DbPassword)
- cmd.PersistentFlags().String(config.Keys.DbDatabase, values.DbDatabase, usage.DbDatabase)
- cmd.PersistentFlags().String(config.Keys.DbTLSMode, values.DbTLSMode, usage.DbTLSMode)
- cmd.PersistentFlags().String(config.Keys.DbTLSCACert, values.DbTLSCACert, usage.DbTLSCACert)
-}
diff --git a/cmd/gotosocial/flag/server.go b/cmd/gotosocial/flag/server.go
deleted file mode 100644
index 418e48af6..000000000
--- a/cmd/gotosocial/flag/server.go
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- GoToSocial
- Copyright (C) 2021-2022 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 flag
-
-import (
- "github.com/spf13/cobra"
- "github.com/superseriousbusiness/gotosocial/internal/config"
-)
-
-// Server attaches all flags pertaining to running the GtS server or testrig.
-func Server(cmd *cobra.Command, values config.Values) {
- Template(cmd, values)
- Accounts(cmd, values)
- Media(cmd, values)
- Storage(cmd, values)
- Statuses(cmd, values)
- LetsEncrypt(cmd, values)
- OIDC(cmd, values)
- SMTP(cmd, values)
- Router(cmd, values)
- Syslog(cmd, values)
-}
-
-// Router attaches flags pertaining to the gin router.
-func Router(cmd *cobra.Command, values config.Values) {
- cmd.PersistentFlags().String(config.Keys.BindAddress, values.BindAddress, usage.BindAddress)
- cmd.PersistentFlags().Int(config.Keys.Port, values.Port, usage.Port)
- cmd.PersistentFlags().StringSlice(config.Keys.TrustedProxies, values.TrustedProxies, usage.TrustedProxies)
-}
-
-// Template attaches flags pertaining to templating config.
-func Template(cmd *cobra.Command, values config.Values) {
- cmd.Flags().String(config.Keys.WebTemplateBaseDir, values.WebTemplateBaseDir, usage.WebTemplateBaseDir)
- cmd.Flags().String(config.Keys.WebAssetBaseDir, values.WebAssetBaseDir, usage.WebAssetBaseDir)
-}
-
-// Accounts attaches flags pertaining to account config.
-func Accounts(cmd *cobra.Command, values config.Values) {
- cmd.Flags().Bool(config.Keys.AccountsRegistrationOpen, values.AccountsRegistrationOpen, usage.AccountsRegistrationOpen)
- cmd.Flags().Bool(config.Keys.AccountsApprovalRequired, values.AccountsApprovalRequired, usage.AccountsApprovalRequired)
- cmd.Flags().Bool(config.Keys.AccountsReasonRequired, values.AccountsReasonRequired, usage.AccountsReasonRequired)
-}
-
-// Media attaches flags pertaining to media config.
-func Media(cmd *cobra.Command, values config.Values) {
- cmd.Flags().Int(config.Keys.MediaImageMaxSize, values.MediaImageMaxSize, usage.MediaImageMaxSize)
- cmd.Flags().Int(config.Keys.MediaVideoMaxSize, values.MediaVideoMaxSize, usage.MediaVideoMaxSize)
- cmd.Flags().Int(config.Keys.MediaDescriptionMinChars, values.MediaDescriptionMinChars, usage.MediaDescriptionMinChars)
- cmd.Flags().Int(config.Keys.MediaDescriptionMaxChars, values.MediaDescriptionMaxChars, usage.MediaDescriptionMaxChars)
- cmd.Flags().Int(config.Keys.MediaRemoteCacheDays, values.MediaRemoteCacheDays, usage.MediaRemoteCacheDays)
-}
-
-// Storage attaches flags pertaining to storage config.
-func Storage(cmd *cobra.Command, values config.Values) {
- cmd.Flags().String(config.Keys.StorageBackend, values.StorageBackend, usage.StorageBackend)
- cmd.Flags().String(config.Keys.StorageLocalBasePath, values.StorageLocalBasePath, usage.StorageLocalBasePath)
-}
-
-// Statuses attaches flags pertaining to statuses config.
-func Statuses(cmd *cobra.Command, values config.Values) {
- cmd.Flags().Int(config.Keys.StatusesMaxChars, values.StatusesMaxChars, usage.StatusesMaxChars)
- cmd.Flags().Int(config.Keys.StatusesCWMaxChars, values.StatusesCWMaxChars, usage.StatusesCWMaxChars)
- cmd.Flags().Int(config.Keys.StatusesPollMaxOptions, values.StatusesPollMaxOptions, usage.StatusesPollMaxOptions)
- cmd.Flags().Int(config.Keys.StatusesPollOptionMaxChars, values.StatusesPollOptionMaxChars, usage.StatusesPollOptionMaxChars)
- cmd.Flags().Int(config.Keys.StatusesMediaMaxFiles, values.StatusesMediaMaxFiles, usage.StatusesMediaMaxFiles)
-}
-
-// LetsEncrypt attaches flags pertaining to letsencrypt config.
-func LetsEncrypt(cmd *cobra.Command, values config.Values) {
- cmd.Flags().Bool(config.Keys.LetsEncryptEnabled, values.LetsEncryptEnabled, usage.LetsEncryptEnabled)
- cmd.Flags().Int(config.Keys.LetsEncryptPort, values.LetsEncryptPort, usage.LetsEncryptPort)
- cmd.Flags().String(config.Keys.LetsEncryptCertDir, values.LetsEncryptCertDir, usage.LetsEncryptCertDir)
- cmd.Flags().String(config.Keys.LetsEncryptEmailAddress, values.LetsEncryptEmailAddress, usage.LetsEncryptEmailAddress)
-}
-
-// OIDC attaches flags pertaining to oidc config.
-func OIDC(cmd *cobra.Command, values config.Values) {
- cmd.Flags().Bool(config.Keys.OIDCEnabled, values.OIDCEnabled, usage.OIDCEnabled)
- cmd.Flags().String(config.Keys.OIDCIdpName, values.OIDCIdpName, usage.OIDCIdpName)
- cmd.Flags().Bool(config.Keys.OIDCSkipVerification, values.OIDCSkipVerification, usage.OIDCSkipVerification)
- cmd.Flags().String(config.Keys.OIDCIssuer, values.OIDCIssuer, usage.OIDCIssuer)
- cmd.Flags().String(config.Keys.OIDCClientID, values.OIDCClientID, usage.OIDCClientID)
- cmd.Flags().String(config.Keys.OIDCClientSecret, values.OIDCClientSecret, usage.OIDCClientSecret)
- cmd.Flags().StringSlice(config.Keys.OIDCScopes, values.OIDCScopes, usage.OIDCScopes)
-}
-
-// SMTP attaches flags pertaining to smtp/email config.
-func SMTP(cmd *cobra.Command, values config.Values) {
- cmd.Flags().String(config.Keys.SMTPHost, values.SMTPHost, usage.SMTPHost)
- cmd.Flags().Int(config.Keys.SMTPPort, values.SMTPPort, usage.SMTPPort)
- cmd.Flags().String(config.Keys.SMTPUsername, values.SMTPUsername, usage.SMTPUsername)
- cmd.Flags().String(config.Keys.SMTPPassword, values.SMTPPassword, usage.SMTPPassword)
- cmd.Flags().String(config.Keys.SMTPFrom, values.SMTPFrom, usage.SMTPFrom)
-}
-
-// Syslog attaches flags pertaining to syslog config.
-func Syslog(cmd *cobra.Command, values config.Values) {
- cmd.Flags().Bool(config.Keys.SyslogEnabled, values.SyslogEnabled, usage.SyslogEnabled)
- cmd.Flags().String(config.Keys.SyslogProtocol, values.SyslogProtocol, usage.SyslogProtocol)
- cmd.Flags().String(config.Keys.SyslogAddress, values.SyslogAddress, usage.SyslogAddress)
-}
diff --git a/cmd/gotosocial/flag/usage.go b/cmd/gotosocial/flag/usage.go
deleted file mode 100644
index 3393f4675..000000000
--- a/cmd/gotosocial/flag/usage.go
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- GoToSocial
- Copyright (C) 2021-2022 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 flag
-
-import "github.com/superseriousbusiness/gotosocial/internal/config"
-
-var usage = config.KeyNames{
- LogLevel: "Log level to run at: [trace, debug, info, warn, fatal]",
- LogDbQueries: "Log database queries verbosely when log-level is trace or debug",
- ApplicationName: "Name of the application, used in various places internally",
- ConfigPath: "Path to a file containing gotosocial configuration. Values set in this file will be overwritten by values set as env vars or arguments",
- Host: "Hostname to use for the server (eg., example.org, gotosocial.whatever.com). This value must be set. DO NOT change this on a server that's already run!",
- AccountDomain: "Domain to use in account names (eg., example.org, whatever.com). If not set, will default to the setting for host. DO NOT change this on a server that's already run!",
- Protocol: "Protocol to use for the REST api of the server. This value must be set to one of http or https; only use http for debugging and tests!",
- BindAddress: "Bind address to use for the GoToSocial server (eg., 0.0.0.0, 172.138.0.9, [::], localhost). For ipv6, enclose the address in square brackets, eg [2001:db8::fed1]. Default binds to all interfaces.",
- Port: "Port to use for GoToSocial. Change this to 443 if you're running the binary directly on the host machine.",
- TrustedProxies: "Proxies to trust when parsing x-forwarded headers into real IPs.",
- DbType: "Database type: eg., postgres",
- DbAddress: "Database ipv4 address, hostname, or filename",
- DbPort: "Database port",
- DbUser: "Database username",
- DbPassword: "Database password",
- DbDatabase: "Database name",
- DbTLSMode: "Database tls mode",
- DbTLSCACert: "Path to CA cert for db tls connection",
- WebTemplateBaseDir: "Basedir for html templating files for rendering pages and composing emails.",
- WebAssetBaseDir: "Directory to serve static assets from, accessible at example.org/assets/",
- AccountsRegistrationOpen: "Allow anyone to submit an account signup request. If false, server will be invite-only.",
- AccountsApprovalRequired: "Do account signups require approval by an admin or moderator before user can log in? If false, new registrations will be automatically approved.",
- AccountsReasonRequired: "Do new account signups require a reason to be submitted on registration?",
- MediaImageMaxSize: "Max size of accepted images in bytes",
- MediaVideoMaxSize: "Max size of accepted videos in bytes",
- MediaDescriptionMinChars: "Min required chars for an image description",
- MediaDescriptionMaxChars: "Max permitted chars for an image description",
- MediaRemoteCacheDays: "Number of days to locally cache media from remote instances. If set to 0, remote media will be kept indefinitely.",
- StorageBackend: "Storage backend to use for media attachments",
- StorageLocalBasePath: "Full path to an already-created directory where gts should store/retrieve media files. Subfolders will be created within this dir.",
- StatusesMaxChars: "Max permitted characters for posted statuses",
- StatusesCWMaxChars: "Max permitted characters for content/spoiler warnings on statuses",
- StatusesPollMaxOptions: "Max amount of options permitted on a poll",
- StatusesPollOptionMaxChars: "Max amount of characters for a poll option",
- StatusesMediaMaxFiles: "Maximum number of media files/attachments per status",
- LetsEncryptEnabled: "Enable letsencrypt TLS certs for this server. If set to true, then cert dir also needs to be set (or take the default).",
- LetsEncryptPort: "Port to listen on for letsencrypt certificate challenges. Must not be the same as the GtS webserver/API port.",
- LetsEncryptCertDir: "Directory to store acquired letsencrypt certificates.",
- LetsEncryptEmailAddress: "Email address to use when requesting letsencrypt certs. Will receive updates on cert expiry etc.",
- OIDCEnabled: "Enabled OIDC authorization for this instance. If set to true, then the other OIDC flags must also be set.",
- OIDCIdpName: "Name of the OIDC identity provider. Will be shown to the user when logging in.",
- OIDCSkipVerification: "Skip verification of tokens returned by the OIDC provider. Should only be set to 'true' for testing purposes, never in a production environment!",
- OIDCIssuer: "Address of the OIDC issuer. Should be the web address, including protocol, at which the issuer can be reached. Eg., 'https://example.org/auth'",
- OIDCClientID: "ClientID of GoToSocial, as registered with the OIDC provider.",
- OIDCClientSecret: "ClientSecret of GoToSocial, as registered with the OIDC provider.",
- OIDCScopes: "OIDC scopes.",
- SMTPHost: "Host of the smtp server. Eg., 'smtp.eu.mailgun.org'",
- SMTPPort: "Port of the smtp server. Eg., 587",
- SMTPUsername: "Username to authenticate with the smtp server as. Eg., 'postmaster@mail.example.org'",
- SMTPPassword: "Password to pass to the smtp server.",
- SMTPFrom: "Address to use as the 'from' field of the email. Eg., 'gotosocial@example.org'",
- SyslogEnabled: "Enable the syslog logging hook. Logs will be mirrored to the configured destination.",
- SyslogProtocol: "Protocol to use when directing logs to syslog. Leave empty to connect to local syslog.",
- SyslogAddress: "Address:port to send syslog logs to. Leave empty to connect to local syslog.",
- AdminAccountUsername: "the username to create/delete/etc",
- AdminAccountEmail: "the email address of this account",
- AdminAccountPassword: "the password to set for this account",
- AdminTransPath: "the path of the file to import from/export to",
-}