From d1fb9915d263873b110aac0182a4973e84338e15 Mon Sep 17 00:00:00 2001
From: nd <git@notandy.de>
Date: Sat, 4 Dec 2021 00:02:57 +0100
Subject: [PATCH] add debian packaging stuff

---
 .gitlab-ci.yml                      |  4 ++--
 debian/control                      | 14 ++++++++++++++
 debian/install                      |  2 ++
 debian/postinst                     | 26 ++++++++++++++++++++++++++
 debian/postrm                       | 18 ++++++++++++++++++
 debian/rules                        |  3 +++
 prometheus-hcloud-exporter@.service | 14 ++++++++++++++
 7 files changed, 79 insertions(+), 2 deletions(-)
 create mode 100644 debian/control
 create mode 100644 debian/install
 create mode 100755 debian/postinst
 create mode 100755 debian/postrm
 create mode 100755 debian/rules
 create mode 100644 prometheus-hcloud-exporter@.service

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1461068..6edebcc 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -18,8 +18,8 @@ autoupdate:
   extends: .build
   script:
   - wget "https://github.com/${UPSTREAM_GITHUB_PATH}/releases/download/${UPSTREAM_VERSION}/hcloud_exporter-${UPSTREAM_VERSION#v}-linux-amd64"
-  - mv hcloud_exporter-* hcloud_exporter
+  - mv hcloud_exporter-* prometheus-hcloud-exporter
   artifacts:
     paths:
-    - hcloud_exporter
+    - prometheus-hcloud-exporter
 
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..8e3221e
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,14 @@
+Source: prometheus-hcloud-exporter
+Section: go
+Priority: optional
+Maintainer: CCCV <it@cccv.de>
+Build-Depends:
+ debhelper-compat (= 12),
+Standards-Version: 4.5.0
+Homepage: https://git.cccv.de/infra/packages/prometheus-hcloud-exporter.git
+Vcs-Git: https://git.cccv.de/infra/packages/prometheus-hcloud-exporter.git
+
+Package: prometheus-hcloud-exporter
+Architecture: amd64
+Depends: systemd
+Description: prometheus-hcloud-exporter package
diff --git a/debian/install b/debian/install
new file mode 100644
index 0000000..e259c1b
--- /dev/null
+++ b/debian/install
@@ -0,0 +1,2 @@
+prometheus-hcloud-exporter /usr/bin/
+prometheus-hcloud-exporter@.service /lib/systemd/system/
diff --git a/debian/postinst b/debian/postinst
new file mode 100755
index 0000000..f905732
--- /dev/null
+++ b/debian/postinst
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+	configure)
+		chown root:root /etc/prometheus-hcloud-exporter
+		chmod 0750 /etc/prometheus-hcloud-exporter
+
+		systemctl daemon-reload
+		systemctl restart 'prometheus-hcloud-exporter@*'
+
+	;;
+
+	abort-upgrade|abort-remove|abort-deconfigure)
+	;;
+
+	*)
+		echo "postinst called with unknown argument \`$1'" >&2
+		exit 1
+	;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/postrm b/debian/postrm
new file mode 100755
index 0000000..d8c6d81
--- /dev/null
+++ b/debian/postrm
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+	purge)
+		rm -rf /etc/prometheus-hcloud-exporter
+	;;
+	remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+	;;
+	*)
+		echo "postrm called with unknown argument \`$1'" >&2
+		exit 1
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..cbe925d
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,3 @@
+#!/usr/bin/make -f
+%:
+	dh $@
diff --git a/prometheus-hcloud-exporter@.service b/prometheus-hcloud-exporter@.service
new file mode 100644
index 0000000..96c4125
--- /dev/null
+++ b/prometheus-hcloud-exporter@.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Prometheus exporter for hetzner cloud metrics
+
+[Service]
+Restart=always
+DynamicUser=yes
+EnvironmentFile=/etc/prometheus-hcloud-exporter/%i.env
+ExecStart=/usr/bin/prometheus-hcloud-exporter $ARGS
+ExecReload=/bin/kill -HUP $MAINPID
+TimeoutStopSec=20s
+SendSIGKILL=no
+
+[Install]
+WantedBy=multi-user.target
-- 
GitLab