diff --git a/.gitignore b/.gitignore index cf21ec3..dd955cf 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,6 @@ public/fa-solid-900.svg public/fa-solid-900.ttf public/fa-solid-900.woff public/fa-solid-900.woff2 + +# release files +dist/ diff --git a/.goreleaser.yml b/.goreleaser.yml new file mode 100644 index 0000000..67c6e04 --- /dev/null +++ b/.goreleaser.yml @@ -0,0 +1,81 @@ +project_name: tavern + +before: + + hooks: + - go mod download + - go generate ./... + +builds: + - binary: tavern + env: + - CGO_ENABLED=0 + flags: + - -tags=prod + ldflags: + - -w + - -s + - -extldflags '-static' + - -X main.Release={{.Version}} + - -X main.GitCommit={{.Commit}} + - -X main.BuildTime={{.Date}} + +archives: + - format: zip + files: + - LICENSE + - README* + - CHANGELOG* + +checksum: + name_template: 'checksums.txt' + +signs: + - signature: "${artifact}_sig" + artifacts: all + +snapshot: + name_template: "{{ .Tag }}-next" + +nfpms: + - + vendor: Nick Gerakines + homepage: https://tavern.town/ + maintainer: Nick Gerakines + description: A self-contained and configurable Activity Pub server. + license: mit + empty_folders: + - /usr/share/tavern/ + formats: + - deb + - rpm + suggests: + - postgres-server + - systemd + - rsyslog + files: + ./templates/**/*: "/usr/share/tavern/templates" + ./public/**/*: "/usr/share/tavern/public" + config_files: + ./scripts/tavern_rsyslog.conf: "/etc/rsyslog.d/tavern.conf" + ./scripts/tavern_env: "/usr/share/tavern/env" + ./scripts/tavern.service: "/etc/systemd/system/tavern.service" + overrides: + deb: + scripts: + postinstall: ./scripts/postinst + preremove: ./scripts/prerm + postremove: ./scripts/postrm + +changelog: + sort: asc + filters: + exclude: + - '^docs:' + - '^test:' + - '^assets:' + +release: + gitlab: + owner: ngerakines + name: tavern \ No newline at end of file diff --git a/errors/errors_generated.go b/errors/errors_generated.go index 965e71b..cb72c8f 100644 --- a/errors/errors_generated.go +++ b/errors/errors_generated.go @@ -1,5 +1,5 @@ // Code generated by go generate; DO NOT EDIT. -// This file was generated by herr at 2020-03-24 11:10:55.384793105 -0400 EDT m=+0.009454825 +// This file was generated by herr at 2020-03-24 13:33:44.957849681 -0400 EDT m=+0.009274100 package errors import ( diff --git a/errors/errors_generated_test.go b/errors/errors_generated_test.go index 15ae5f6..ea80e16 100644 --- a/errors/errors_generated_test.go +++ b/errors/errors_generated_test.go @@ -1,5 +1,5 @@ // Code generated by go generate; DO NOT EDIT. -// This file was generated by herr at 2020-03-24 11:10:55.411481094 -0400 EDT m=+0.036142781 +// This file was generated by herr at 2020-03-24 13:33:44.982147915 -0400 EDT m=+0.033572306 package errors import ( diff --git a/scripts/postinst b/scripts/postinst new file mode 100755 index 0000000..f722f42 --- /dev/null +++ b/scripts/postinst @@ -0,0 +1,16 @@ +#!/bin/sh + +set -e + +if which systemctl > /dev/null; then + systemctl daemon-reload || : + systemctl enable tavern || : + systemctl start tavern || : +else + echo "Couldn't find systemd to control tavern, cannot proceed." + exit 1 +fi + +#DEBHELPER# + +exit 0 diff --git a/scripts/postrm b/scripts/postrm new file mode 100755 index 0000000..2882c21 --- /dev/null +++ b/scripts/postrm @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +if which systemctl > /dev/null; then + systemctl daemon-reload || : +fi + +#DEBHELPER# + +exit 0 diff --git a/scripts/prerm b/scripts/prerm new file mode 100755 index 0000000..d6e9a62 --- /dev/null +++ b/scripts/prerm @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +if which systemctl > /dev/null; then + systemctl stop tavern || : +fi + +#DEBHELPER# + +exit 0 diff --git a/scripts/tavern.service b/scripts/tavern.service new file mode 100644 index 0000000..d5753d6 --- /dev/null +++ b/scripts/tavern.service @@ -0,0 +1,14 @@ +[Unit] +Description=tavern + +[Service] +EnvironmentFile=-/etc/default/tavern +Restart=on-failure +WorkingDirectory=/usr/share/tavern/ +ExecStart=/usr/local/bin/tavern server +StandardOutput=syslog +StandardError=syslog +SyslogIdentifier=tavern + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/scripts/tavern_env b/scripts/tavern_env new file mode 100644 index 0000000..e69de29 diff --git a/scripts/tavern_rsyslog.conf b/scripts/tavern_rsyslog.conf new file mode 100644 index 0000000..20aae94 --- /dev/null +++ b/scripts/tavern_rsyslog.conf @@ -0,0 +1,2 @@ +if $programname == 'tavern' then /var/log/tavern.log +& stop \ No newline at end of file