diff --git a/Taskfile.yml b/Taskfile.yml index 6b8852f..4a5c4ce 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -9,13 +9,65 @@ tasks: fmt: desc: Format go code + sources: + - '**/*.go' cmds: - go fmt ./... + vet: + desc: Vet go code + sources: + - '**/*.go' + cmds: + - go vet ./... + + critic: + desc: Critique go code + sources: + - '**/*.go' + cmds: + - gocritic check ./... + + staticcheck: + desc: Static check go code + sources: + - '**/*.go' + cmds: + - staticcheck ./... + + analyze: + desc: Do static analysis + deps: + - vet + - critic + - staticcheck + test: desc: Run unit tests + deps: [fmt, vet] + sources: + - '**/*.go' + generates: + - build/cover.out cmds: - - go test -race -cover ./... + - go test -race -cover -coverprofile build/cover.out ./... + + coverage-report: + desc: Build coverage report + deps: [test] + sources: + - build/cover.out + generates: + - build/cover.html + cmds: + - go tool cover -html=build/cover.out -o build/cover.html + + serve-report: + desc: Serve the coverage report + deps: [coverage-report] + cmds: + - ip addr list | grep inet + - php -S 0.0.0.0:3265 -t build build: desc: Build server binary diff --git a/app.go b/app.go index 6390de9..6b33a8c 100644 --- a/app.go +++ b/app.go @@ -3,6 +3,7 @@ package lenore import ( "errors" "fmt" + "time" "codeberg.org/danjones000/lenore/config" "codeberg.org/danjones000/lenore/store" @@ -11,6 +12,10 @@ import ( boxap "github.com/go-ap/fedbox/activitypub" ) +func init() { + client.UserAgent = config.UserAgent +} + type App struct { conf config.Config self vocab.Service @@ -22,7 +27,7 @@ type App struct { func NewApp(ver string, conf config.Config, db store.Store) (*App, error) { if conf.BaseURL == "" { - return nil, errors.New("Missing BaseURL") + return nil, errors.New("missing BaseURL") } app := App{ version: ver, @@ -30,10 +35,12 @@ func NewApp(ver string, conf config.Config, db store.Store) (*App, error) { } selfIRI := boxap.DefaultServiceIRI(conf.BaseURL) - self, err := boxap.LoadActor(db, selfIRI) - if err != nil { - return nil, err - } + self := boxap.Self(selfIRI) + self.Name = vocab.DefaultNaturalLanguageValue(app.Name()) + self.AttributedTo = vocab.IRI(config.DevUrl) + self.Summary = vocab.DefaultNaturalLanguageValue("ActivityPub-powered reader") + self.Published = time.Now() + self.Updated = time.Now() app.self = self app.client = *client.New() diff --git a/app_test.go b/app_test.go index 7bc0cac..426985e 100644 --- a/app_test.go +++ b/app_test.go @@ -14,7 +14,7 @@ func TestEmptyBaseURL(t *testing.T) { c := config.Config{} a, er := NewApp("0.0.0", c, testmocks.GetStore()) assert.Nil(t, a) - assert.EqualError(t, er, "Missing BaseURL") + assert.EqualError(t, er, "missing BaseURL") } func TestDefaultEnvironment(t *testing.T) { diff --git a/build/.gitignore b/build/.gitignore index b1e2a80..d6b7ef3 100644 --- a/build/.gitignore +++ b/build/.gitignore @@ -1 +1,2 @@ -lenore +* +!.gitignore diff --git a/cmd/lenore/main.go b/cmd/lenore/main.go index f879352..0f7d6be 100644 --- a/cmd/lenore/main.go +++ b/cmd/lenore/main.go @@ -4,44 +4,29 @@ package main import ( "fmt" - "time" "codeberg.org/danjones000/lenore" "codeberg.org/danjones000/lenore/config" - vocab "github.com/go-ap/activitypub" - boxap "github.com/go-ap/fedbox/activitypub" "github.com/go-ap/storage-sqlite" ) func main() { conf := config.Config{BaseURL: "http://localhost:4523/"} - sqlConf := sqlite.Config{Path: "storage"} - err := sqlite.Bootstrap(sqlConf) - if err != nil { - panic(err) - } db, err := sqlite.New(sqlConf) if err != nil { panic(err) } - serv := vocab.ServiceNew(boxap.DefaultServiceIRI(conf.BaseURL)) - serv.Name = vocab.DefaultNaturalLanguageValue("Lenore") - serv.Summary = vocab.DefaultNaturalLanguageValue("ActivityPub-powered reader") - serv.Published = time.Now() - serv.Updated = time.Now() - _, err = db.Save(serv) - if err != nil { - panic(err) - } - - app, err := lenore.NewApp("0.0.0", conf, db) + app, err := lenore.NewApp(config.Version, conf, db) if err != nil { panic(err) } fmt.Println(app) - fmt.Println(app.Service().ID) + serv := app.Service() + out, _ := serv.MarshalJSON() + fmt.Println(string(out)) + fmt.Println(serv.ID) } diff --git a/config/version.go b/config/version.go new file mode 100644 index 0000000..3731179 --- /dev/null +++ b/config/version.go @@ -0,0 +1,10 @@ +package config + +const ( + AppName string = "lenore" + Version string = "0.0.1" + Url string = "https://codeberg.org/danjones000/lenore" + DevUrl string = "https://codeberg.org/danjones000" + Email string = "danjones@goodevilgenius.org" + UserAgent string = AppName + "/" + Version + " (" + Url + "; " + Email + ")" +)