diff --git a/cmd/tusd/main.go b/cmd/tusd/main.go index e5d45b4..0e5ec10 100644 --- a/cmd/tusd/main.go +++ b/cmd/tusd/main.go @@ -106,6 +106,8 @@ func main() { address := httpHost + ":" + httpPort stdout.Printf("Using %s as address to listen.\n", address) + stdout.Printf(composer.Capabilities()) + go func() { for { select { diff --git a/composer.go b/composer.go index f8f5fef..91796e5 100644 --- a/composer.go +++ b/composer.go @@ -42,6 +42,49 @@ func NewStoreComposerFromDataStore(store DataStore) *StoreComposer { return composer } +func (store *StoreComposer) Capabilities() string { + str := "Core: " + + if store.Core != nil { + str += "✓" + } else { + str += "✗" + } + + str += ` Terminater: ` + if store.UsesTerminater { + str += "✓" + } else { + str += "✗" + } + str += ` Finisher: ` + if store.UsesFinisher { + str += "✓" + } else { + str += "✗" + } + str += ` Locker: ` + if store.UsesLocker { + str += "✓" + } else { + str += "✗" + } + str += ` GetReader: ` + if store.UsesGetReader { + str += "✓" + } else { + str += "✗" + } + str += ` Concater: ` + if store.UsesConcater { + str += "✓" + } else { + str += "✗" + } + + return str +} + func (store *StoreComposer) UseCore(core DataStore) { store.Core = core } diff --git a/composer.mgo b/composer.mgo index b9b5584..67733fc 100644 --- a/composer.mgo +++ b/composer.mgo @@ -12,6 +12,13 @@ package tusd composer.Use ## TYPE (mod) \ } +#define USE_CAP(TYPE) str += ` TYPE: `; \ +if store.Uses ## TYPE { \ + str += "✓" \ +} else { \ + str += "✗" \ +} + type StoreComposer struct { Core DataStore @@ -39,6 +46,24 @@ func NewStoreComposerFromDataStore(store DataStore) *StoreComposer { return composer } +func (store *StoreComposer) Capabilities() string { + str := "Core: " + + if store.Core != nil { + str += "✓" + } else { + str += "✗" + } + + USE_CAP(Terminater) + USE_CAP(Finisher) + USE_CAP(Locker) + USE_CAP(GetReader) + USE_CAP(Concater) + + return str +} + func (store *StoreComposer) UseCore(core DataStore) { store.Core = core }