From 0884f89431cd26bcc9674b3b7ab628b090f5881e Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Tue, 7 Dec 2021 13:31:39 +0100 Subject: 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 --- internal/federation/dereferencing/dereferencer.go | 5 +---- internal/federation/dereferencing/dereferencer_test.go | 9 ++++----- internal/federation/dereferencing/thread.go | 14 ++++++++++---- 3 files changed, 15 insertions(+), 13 deletions(-) (limited to 'internal/federation/dereferencing') diff --git a/internal/federation/dereferencing/dereferencer.go b/internal/federation/dereferencing/dereferencer.go index 76fd830a2..c105665f3 100644 --- a/internal/federation/dereferencing/dereferencer.go +++ b/internal/federation/dereferencing/dereferencer.go @@ -24,7 +24,6 @@ import ( "sync" "github.com/superseriousbusiness/gotosocial/internal/ap" - "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" "github.com/superseriousbusiness/gotosocial/internal/media" @@ -82,19 +81,17 @@ type deref struct { typeConverter typeutils.TypeConverter transportController transport.Controller mediaHandler media.Handler - config *config.Config handshakes map[string][]*url.URL handshakeSync *sync.Mutex // mutex to lock/unlock when checking or updating the handshakes map } // NewDereferencer returns a Dereferencer initialized with the given parameters. -func NewDereferencer(config *config.Config, db db.DB, typeConverter typeutils.TypeConverter, transportController transport.Controller, mediaHandler media.Handler) Dereferencer { +func NewDereferencer(db db.DB, typeConverter typeutils.TypeConverter, transportController transport.Controller, mediaHandler media.Handler) Dereferencer { return &deref{ db: db, typeConverter: typeConverter, transportController: transportController, mediaHandler: mediaHandler, - config: config, handshakeSync: &sync.Mutex{}, } } diff --git a/internal/federation/dereferencing/dereferencer_test.go b/internal/federation/dereferencing/dereferencer_test.go index d4bf3396d..8bcee8615 100644 --- a/internal/federation/dereferencing/dereferencer_test.go +++ b/internal/federation/dereferencing/dereferencer_test.go @@ -29,7 +29,6 @@ import ( "github.com/stretchr/testify/suite" "github.com/superseriousbusiness/activity/streams" "github.com/superseriousbusiness/activity/streams/vocab" - "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/federation/dereferencing" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" @@ -39,7 +38,6 @@ import ( type DereferencerStandardTestSuite struct { suite.Suite - config *config.Config db db.DB storage *kv.KVStore @@ -61,11 +59,12 @@ func (suite *DereferencerStandardTestSuite) SetupSuite() { } func (suite *DereferencerStandardTestSuite) SetupTest() { - suite.config = testrig.NewTestConfig() - suite.db = testrig.NewTestDB() testrig.InitTestLog() + testrig.InitTestConfig() + + suite.db = testrig.NewTestDB() suite.storage = testrig.NewTestStorage() - suite.dereferencer = dereferencing.NewDereferencer(suite.config, suite.db, testrig.NewTestTypeConverter(suite.db), suite.mockTransportController(), testrig.NewTestMediaHandler(suite.db, suite.storage)) + suite.dereferencer = dereferencing.NewDereferencer(suite.db, testrig.NewTestTypeConverter(suite.db), suite.mockTransportController(), testrig.NewTestMediaHandler(suite.db, suite.storage)) testrig.StandardDBSetup(suite.db, nil) } diff --git a/internal/federation/dereferencing/thread.go b/internal/federation/dereferencing/thread.go index db1d336c6..209df32c4 100644 --- a/internal/federation/dereferencing/thread.go +++ b/internal/federation/dereferencing/thread.go @@ -24,7 +24,9 @@ import ( "net/url" "github.com/sirupsen/logrus" + "github.com/spf13/viper" "github.com/superseriousbusiness/gotosocial/internal/ap" + "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/util" ) @@ -43,7 +45,8 @@ func (d *deref) DereferenceThread(ctx context.Context, username string, statusIR l.Debug("entering DereferenceThread") // if it's our status we already have everything stashed so we can bail early - if statusIRI.Host == d.config.Host { + host := viper.GetString(config.Keys.Host) + if statusIRI.Host == host { l.Debug("iri belongs to us, bailing") return nil } @@ -77,7 +80,8 @@ func (d *deref) iterateAncestors(ctx context.Context, username string, statusIRI l.Debug("entering iterateAncestors") // if it's our status we don't need to dereference anything so we can immediately move up the chain - if statusIRI.Host == d.config.Host { + host := viper.GetString(config.Keys.Host) + if statusIRI.Host == host { l.Debug("iri belongs to us, moving up to next ancestor") // since this is our status, we know we can extract the id from the status path @@ -129,7 +133,8 @@ func (d *deref) iterateDescendants(ctx context.Context, username string, statusI l.Debug("entering iterateDescendants") // if it's our status we already have descendants stashed so we can bail early - if statusIRI.Host == d.config.Host { + host := viper.GetString(config.Keys.Host) + if statusIRI.Host == host { l.Debug("iri belongs to us, bailing") return nil } @@ -205,7 +210,8 @@ pageLoop: continue } - if itemURI.Host == d.config.Host { + host := viper.GetString(config.Keys.Host) + if itemURI.Host == host { // skip if the reply is from us -- we already have it then continue } -- cgit v1.2.3