diff options
author | Ben Alex | 2018-11-27 16:09:15 +1100 |
---|---|---|
committer | Ben Alex | 2018-11-27 16:09:15 +1100 |
commit | 525811615cf3cadc09023dec5bcced83fdd0ab3f (patch) | |
tree | 0c9477c0eb80c58ae7b3f0b4e223625b3fc48848 | |
download | aur-525811615cf3cadc09023dec5bcced83fdd0ab3f.tar.gz |
Initial commit
-rw-r--r-- | .SRCINFO | 19 | ||||
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | PKGBUILD | 42 | ||||
-rw-r--r-- | sonnen-exporter.install | 50 | ||||
-rw-r--r-- | sonnen-exporter.service | 19 |
5 files changed, 135 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..b5e22b6eba74 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,19 @@ +pkgbase = sonnen-exporter-git + pkgdesc = Prometheus exporter for Sonnen battery systems + pkgver = r5.c90c5e1 + pkgrel = 1 + url = https://github.com/benalexau/sonnen-exporter + install = sonnen-exporter.install + arch = x86_64 + license = MIT + makedepends = cargo + backup = etc/sonnen-exporter.toml + source = git+https://github.com/benalexau/sonnen-exporter.git + source = sonnen-exporter.install + source = sonnen-exporter.service + sha512sums = SKIP + sha512sums = 18573308c195020a8e10451e12dc972a77ba546dfad9dabdd5e4cf04d36c34aea021dadbca66fcc7f8cc1e33760ce8ff8e22c8fb04c271cd4a168469b570cb36 + sha512sums = 1fa76df3c744db87f0b704bc24d1d3e3712cf9ae6c6df710cbf1bc6285cf91fd8084358cecd55d10eecb0ca86e55729928f29574b24957749509170aeb6dd701 + +pkgname = sonnen-exporter-git + diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..79131bea5bb5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.xz +*.gz +pkg +src +sonnen-exporter diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..fb32634c8526 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,42 @@ +# Maintainer: Ben Alex <ben.alex@acegi.com.au> + +pkgname=sonnen-exporter-git +_pkgbase=sonnen-exporter +pkgver=r5.c90c5e1 +pkgrel=1 +pkgdesc="Prometheus exporter for Sonnen battery systems" +arch=('x86_64') +url="https://github.com/benalexau/sonnen-exporter" +license=('MIT') +groups=() +makedepends=('cargo') +replaces=() +backup=('etc/sonnen-exporter.toml') +options=() +install=sonnen-exporter.install +source=('git+https://github.com/benalexau/sonnen-exporter.git' + "${_pkgbase}.install" + "${_pkgbase}.service") +noextract=() +sha512sums=('SKIP' + '18573308c195020a8e10451e12dc972a77ba546dfad9dabdd5e4cf04d36c34aea021dadbca66fcc7f8cc1e33760ce8ff8e22c8fb04c271cd4a168469b570cb36' + '1fa76df3c744db87f0b704bc24d1d3e3712cf9ae6c6df710cbf1bc6285cf91fd8084358cecd55d10eecb0ca86e55729928f29574b24957749509170aeb6dd701') + +pkgver() { + cd "$srcdir/$_pkgbase" + ( set -o pipefail + git describe --long --tags 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' || + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + ) +} + +build() { + cd "$srcdir/$_pkgbase" + cargo build --release +} + +package() { + install -D -m 0644 "$srcdir/sonnen-exporter.service" "$pkgdir/usr/lib/systemd/system/sonnen-exporter.service" + install -D -m 0644 "$srcdir/$_pkgbase/etc/config.toml" "$pkgdir/etc/sonnen-exporter.toml" + install -D -m 0755 "$srcdir/$_pkgbase/target/release/sonnen-exporter" "$pkgdir/usr/bin/sonnen-exporter" +} diff --git a/sonnen-exporter.install b/sonnen-exporter.install new file mode 100644 index 000000000000..78218087fea0 --- /dev/null +++ b/sonnen-exporter.install @@ -0,0 +1,50 @@ +post_install() { + # Create users and data directory + + echo "Adding user sonnen-exporter..." + getent group sonnen-exporter &>/dev/null || groupadd -r sonnen-exporter >/dev/null + getent passwd sonnen-exporter &>/dev/null || useradd -r -g sonnen-exporter -M -s /usr/bin/nologin sonnen-exporter >/dev/null + + # Load service file + systemctl --quiet daemon-reload + + echo "" + echo "##########" + echo "#" + echo "# Remember to configure the server in /etc/sonnen-exporter.toml" + echo "# After that, start/enable the server via 'systemctl enable sonnen-exporter.service --now'" + echo "#" + echo "##########" + echo "" + +} + +post_upgrade() { + # Reload service file + systemctl --quiet daemon-reload + echo "" + echo "##########" + echo "#" + echo "# Remember to restart the sonnen-exporter unit via 'systemctl restart sonnen-exporter.service', if neccessary." + echo "#" + echo "##########" + echo "" + +} + +pre_remove() { + # Stop service + systemctl --quiet --no-reload disable --now sonnen-exporter.service +} + +post_remove() { + # Unload service + systemctl --quiet daemon-reload + echo "" + echo "##########" + echo "#" + echo "# Remember to remove the user/group sonnen-exporter, if neccessary." + echo "#" + echo "##########" + echo "" +} diff --git a/sonnen-exporter.service b/sonnen-exporter.service new file mode 100644 index 000000000000..5ad771933d31 --- /dev/null +++ b/sonnen-exporter.service @@ -0,0 +1,19 @@ +[Unit] +Description=Prometheus exporter for Sonnen battery systems +Documentation=https://github.com/benalexau/sonnen-exporter +After=network.target + +[Service] +User=sonnen-exporter +Group=sonnen-exporter +ExecStart=/usr/bin/sonnen-exporter /etc/sonnen-exporter.toml +LimitNOFILE=64 +LimitNPROC=64 +PrivateTmp=true +PrivateDevices=true +ProtectSystem=full +ProtectHome=true +AmbientCapabilities=CAP_NET_BIND_SERVICE + +[Install] +WantedBy=multi-user.target |