summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Alex2018-11-27 16:09:15 +1100
committerBen Alex2018-11-27 16:09:15 +1100
commit525811615cf3cadc09023dec5bcced83fdd0ab3f (patch)
tree0c9477c0eb80c58ae7b3f0b4e223625b3fc48848
downloadaur-525811615cf3cadc09023dec5bcced83fdd0ab3f.tar.gz
Initial commit
-rw-r--r--.SRCINFO19
-rw-r--r--.gitignore5
-rw-r--r--PKGBUILD42
-rw-r--r--sonnen-exporter.install50
-rw-r--r--sonnen-exporter.service19
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