diff --git a/Makefile b/Makefile index 05d22d7c..fcc97008 100644 --- a/Makefile +++ b/Makefile @@ -2,26 +2,37 @@ PACKAGES=`find ./cmd -mindepth 1 -maxdepth 1 -type d` BINARY=unifi-poller VERSION=`git tag -l --merged | tail -n1` -all: clean man build +all: man unifi-poller clean: - for p in $(PACKAGES); do rm -f `echo $${p}|cut -d/ -f3`{,.1,.1.gz}; done - rm -rf package_build unifi-poller_*.deb unifi-poller-*.rpm unifi-poller-*.pkg - rm -f unifi-poller.*.gz + for p in $(PACKAGES); do rm -f `echo $${p}|cut -d/ -f3`{.macos,.linux,.1,}{,.gz}; done + for p in $(PACKAGES); do rm -f `echo $${p}|cut -d/ -f3`{_,-}*.{deb,rpm,pkg}; done + rm -rf package_build -build: +build: unifi-poller +unifi-poller: for p in $(PACKAGES); do go build -ldflags "-w -s -X main.Version=$(VERSION)" $${p}; done -linux: - for p in $(PACKAGES); do GOOS=linux go build -ldflags "-w -s -X main.Version=$(VERSION)" $${p}; done +linux: unifi-poller.linux +unifi-poller.linux: + for p in $(PACKAGES); do GOOS=linux go build -o unifi-poller.linux -ldflags "-w -s -X main.Version=$(VERSION)" $${p}; done -darwin: - for p in $(PACKAGES); do GOOS=darwin go build -ldflags "-w -s -X main.Version=$(VERSION)" $${p}; done +darwin: unifi-poller.macos +unifi-poller.macos: + for p in $(PACKAGES); do GOOS=darwin go build -o unifi-poller.macos -ldflags "-w -s -X main.Version=$(VERSION)" $${p}; done test: lint for p in $(PACKAGES) $(LIBRARYS); do go test -race -covermode=atomic $${p}; done -man: +lint: + goimports -l $(PACKAGES) + gofmt -l $(PACKAGES) + errcheck $(PACKAGES) + golint $(PACKAGES) + go vet $(PACKAGES) + +man: unifi-poller.1.gz +unifi-poller.1.gz: scripts/build_manpages.sh ./ rpm: man linux @@ -33,18 +44,11 @@ deb: man linux osxpkg: man darwin scripts/build_osx_package.sh -install: all +install: man scripts/local_install.sh uninstall: scripts/local_uninstall.sh -lint: - goimports -l $(PACKAGES) - gofmt -l $(PACKAGES) - errcheck $(PACKAGES) - golint $(PACKAGES) - go vet $(PACKAGES) - deps: dep ensure -update diff --git a/scripts/before-remove.sh b/scripts/before-remove.sh index a1d4895e..36ab63fe 100755 --- a/scripts/before-remove.sh +++ b/scripts/before-remove.sh @@ -2,5 +2,9 @@ # This file is used by rpm and deb packages. FPM use. +if [ "$1" = "upgrade" ] || [ "$1" = "1" ] ; then + exit 0 +fi + systemctl stop unifi-poller systemctl disable unifi-poller diff --git a/scripts/build_linux_packages.sh b/scripts/build_linux_packages.sh index b579609c..644804c8 100755 --- a/scripts/build_linux_packages.sh +++ b/scripts/build_linux_packages.sh @@ -20,6 +20,7 @@ fi echo "Building '${OUTPUT}' package." +# eh, don't change these. PREFIX= BINFIX=/usr @@ -28,7 +29,7 @@ rm -rf package_build mkdir -p package_build${BINFIX}/bin package_build${PREFIX}/etc/${BINARY} package_build${BINFIX}/share/man/man1 # Copy the binary, config file and man page into the env. -cp ${BINARY} package_build${BINFIX}/bin +cp ${BINARY}.linux package_build${BINFIX}/bin/${BINARY} cp *.1.gz package_build${BINFIX}/share/man/man1 cp examples/up.conf.example package_build${PREFIX}/etc/${BINARY}/up.conf @@ -37,9 +38,14 @@ mkdir -p package_build/lib/systemd/system sed "s#ExecStart.*#ExecStart=${BINFIX}/bin/${BINARY} --config=${PREFIX}/etc/${BINARY}/up.conf#" \ init/systemd/unifi-poller.service > package_build/lib/systemd/system/${BINARY}.service +# Make a package. fpm -s dir -t ${OUTPUT} \ --name ${BINARY} \ --version ${VERSION} \ --after-install scripts/after-install.sh \ --before-remove scripts/before-remove.sh \ + --license MIT \ + --url 'https://github.com/davidnewhall/unifi-poller' \ + --maintainer 'david at sleepers dot pro' \ + --description 'This daemon polls a Unifi controller at a short interval and stores the collected metric data in an Influx Database.' \ --chdir package_build diff --git a/scripts/build_osx_package.sh b/scripts/build_osx_package.sh index a0af56f9..17e88f13 100755 --- a/scripts/build_osx_package.sh +++ b/scripts/build_osx_package.sh @@ -1,7 +1,7 @@ #!/bin/bash # This script builds a simple macos Installer pkg. Run by the Makefile. -# Use: `make osx` +# Use: `make osxpkg` OUTPUT=$1 BINARY=unifi-poller @@ -24,7 +24,7 @@ mkdir -p package_build${BINFIX}/bin package_build${PREFIX}/etc/${BINARY} package mkdir -p package_build${PREFIX}/var/log # Copy the binary, config file and man page into the env. -cp ${BINARY} package_build${BINFIX}/bin +cp ${BINARY}.macos package_build${BINFIX}/bin/${BINARY} cp *.1.gz package_build${BINFIX}/share/man/man1 cp examples/up.conf.example package_build${PREFIX}/etc/${BINARY}/ @@ -38,4 +38,8 @@ fpm -s dir -t osxpkg \ --version ${VERSION} \ --after-install scripts/after-install-osx.sh \ --osxpkg-identifier-prefix com.github.davidnewhall \ + --license MIT \ + --maintainer 'david at sleepers dot pro' \ + --url 'https://github.com/davidnewhall/unifi-poller' \ + --description 'This daemon polls a Unifi controller at a short interval and stores the collected metric data in an Influx Database.' \ --chdir package_build