meta: Add release machinery
This commit is contained in:
parent
1ce7cfb147
commit
4a82eb8228
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
NOTICE
|
||||||
|
dist/
|
||||||
|
vendor/
|
40
.goreleaser.yml
Normal file
40
.goreleaser.yml
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
# This is an example goreleaser.yaml file with some sane defaults.
|
||||||
|
# Make sure to check the documentation at http://goreleaser.com
|
||||||
|
before:
|
||||||
|
hooks:
|
||||||
|
- go mod vendor
|
||||||
|
- ./scripts/vendor-licenses -gen > NOTICE
|
||||||
|
builds:
|
||||||
|
- id: ldap
|
||||||
|
main: main.go
|
||||||
|
binary: ldap
|
||||||
|
goos:
|
||||||
|
- darwin
|
||||||
|
- freebsd
|
||||||
|
- linux
|
||||||
|
- windows
|
||||||
|
archives:
|
||||||
|
- replacements:
|
||||||
|
darwin: Darwin
|
||||||
|
linux: Linux
|
||||||
|
windows: Windows
|
||||||
|
386: i386
|
||||||
|
amd64: x86_64
|
||||||
|
files:
|
||||||
|
- LICENSE
|
||||||
|
- NOTICE
|
||||||
|
- README.md
|
||||||
|
checksum:
|
||||||
|
name_template: 'checksums.txt'
|
||||||
|
snapshot:
|
||||||
|
name_template: "{{ .Tag }}-next"
|
||||||
|
changelog:
|
||||||
|
sort: asc
|
||||||
|
filters:
|
||||||
|
exclude:
|
||||||
|
- '^docs:'
|
||||||
|
- '^test:'
|
||||||
|
release:
|
||||||
|
github:
|
||||||
|
owner: NetAuth
|
||||||
|
name: ldap
|
64
scripts/vendor-licenses
Executable file
64
scripts/vendor-licenses
Executable file
|
@ -0,0 +1,64 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
list_vendor_files() {
|
||||||
|
find vendor -type f -a \( -iname 'COPYING*' -o -iname 'LICENSE*' \) | sort
|
||||||
|
}
|
||||||
|
|
||||||
|
list_files() {
|
||||||
|
goroot="$(go env GOROOT)"
|
||||||
|
goid='Go programming language'
|
||||||
|
if [ -r "$goroot/LICENSE" ]; then
|
||||||
|
echo "${goid}::$goroot/LICENSE"
|
||||||
|
elif [ -r /usr/share/licenses/go/LICENSE ]; then
|
||||||
|
echo "${goid}::/usr/share/licenses/go/LICENSE"
|
||||||
|
else # last restort: HTTP
|
||||||
|
echo "${goid}::https://golang.org/LICENSE?m=text"
|
||||||
|
fi
|
||||||
|
list_vendor_files
|
||||||
|
}
|
||||||
|
|
||||||
|
generate_notice() {
|
||||||
|
last=
|
||||||
|
$0 -all | while IFS=$'\n' read license; do
|
||||||
|
pkg="${license%%::*}"
|
||||||
|
if [ "$pkg" != "$license" ]; then
|
||||||
|
license="${license#${pkg}::}"
|
||||||
|
else
|
||||||
|
pkg="${pkg#vendor/}"
|
||||||
|
pkg="${pkg%/*}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf ${last:+'\n\n\n'}
|
||||||
|
last=x
|
||||||
|
|
||||||
|
echo "$pkg" | sed 'p;s/./-/g'
|
||||||
|
fetch "${license}"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
fetch() {
|
||||||
|
case "$1" in
|
||||||
|
*://*) wget -q -O- "${1#*::}";;
|
||||||
|
*) cat "${1#*::}";;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
case "${1--gen}" in
|
||||||
|
-gen)
|
||||||
|
if [ -t 1 ]; then
|
||||||
|
generate_notice | ${PAGER:-more}
|
||||||
|
else
|
||||||
|
generate_notice
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
-src) list_vendor_files;;
|
||||||
|
-all) list_files;;
|
||||||
|
-h)
|
||||||
|
echo 'Usage: vendor-licenses [-h|-gen|-src|-all]' >&2
|
||||||
|
exit 2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unrecognized argument: '$1'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
Loading…
Reference in a new issue