diff options
Diffstat (limited to 'cmd/gotosocial/flag')
-rw-r--r-- | cmd/gotosocial/flag/admin.go | 62 | ||||
-rw-r--r-- | cmd/gotosocial/flag/global.go | 46 | ||||
-rw-r--r-- | cmd/gotosocial/flag/server.go | 117 | ||||
-rw-r--r-- | cmd/gotosocial/flag/usage.go | 82 |
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", -} |