diff options
author | 2021-12-07 13:31:39 +0100 | |
---|---|---|
committer | 2021-12-07 13:31:39 +0100 | |
commit | 0884f89431cd26bcc9674b3b7ab628b090f5881e (patch) | |
tree | cdd3b3f77f780a8b59d075dbcc3d4d013811e405 /cmd/gotosocial/flag/global.go | |
parent | Update dependencies (#333) (diff) | |
download | gotosocial-0884f89431cd26bcc9674b3b7ab628b090f5881e.tar.xz |
Implement Cobra CLI tooling, Viper config tooling (#336)
* start pulling out + replacing urfave and config
* replace many many instances of config
* move more stuff => viper
* properly remove urfave
* move some flags to root command
* add testrig commands to root
* alias config file keys
* start adding cli parsing tests
* reorder viper init
* remove config path alias
* fmt
* change config file keys to non-nested
* we're more or less in business now
* tidy up the common func
* go fmt
* get tests passing again
* add note about the cliparsing tests
* reorganize
* update docs with changes
* structure cmd dir better
* rename + move some files around
* fix dangling comma
Diffstat (limited to 'cmd/gotosocial/flag/global.go')
-rw-r--r-- | cmd/gotosocial/flag/global.go | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/cmd/gotosocial/flag/global.go b/cmd/gotosocial/flag/global.go new file mode 100644 index 000000000..b7fb03e17 --- /dev/null +++ b/cmd/gotosocial/flag/global.go @@ -0,0 +1,45 @@ +/* + 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 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().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) +} |