summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorMike Swanson2015-09-02 19:48:48 -0700
committerMike Swanson2015-09-02 19:48:48 -0700
commitb15ebcfb444f3eb031771d6ce5cb9964a00a591b (patch)
tree96d66f0e0025196b526081a1ab33abfc82f2f809 /PKGBUILD
downloadaur-b15ebcfb444f3eb031771d6ce5cb9964a00a591b.tar.gz
Initial package
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD84
1 files changed, 84 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..68bd388a43c6
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,84 @@
+# Maintainer: Mike Swanson <mikeonthecomputer@gmail.com>
+
+pkgname=zfs-auto-snapshot-git
+pkgdesc="Implementation of a snapshotting service for ZFS"
+pkgver=1.2.1.1.r0.63e4438
+pkgrel=1
+epoch=1
+arch=('any')
+url=""
+license=('GPL2')
+depends=('systemd>=212' 'zfs')
+makedepends=('git')
+provides=("${pkgname%-git}")
+conflicts=("${pkgname%-git}")
+source=('git+https://github.com/zfsonlinux/zfs-auto-snapshot#branch=debian')
+sha256sums=('SKIP')
+
+pkgver() {
+ cd "$srcdir/${pkgname%-git}"
+
+ printf "%s\n" "$(git describe --tags --long | sed 's|debian/||g' | sed 's/\([^-]*-\)g/r\1/;s/-/./g')"
+}
+
+build() {
+ cd "$srcdir/${pkgname%-git}"
+
+ ### COMMENT the following 4 lines to NOT change the snapshot name to
+ ### @PREFIX_DATE_LABEL instead of @PREFIX-LABEL_DATE
+ ### (the following makes the snapshots nicely sorted by time)
+ sed -r -i \
+ -e 's@^(SNAPNAME="\$)(opt_prefix)(.*)-\$DATE@\1{\2}_$DATE\3@' \
+ -e 's@^(SNAPGLOB="\$)(opt_prefix)(.*})([?]+)@\1{\2}\4\3@' \
+ src/zfs-auto-snapshot.sh
+
+ mkdir systemd
+ ### "Label|NumberOfKeptSnapshots|systemd-timer-spec" of snapshots,
+ ### eg. timer and service files, being created adjust/extend if required
+ declare -a arr=(
+ "frequent|4|*:0/15"
+ "hourly|24|hourly"
+ "daily|31|daily"
+ "weekly|8|weekly"
+ "monthly|12|monthly")
+
+ for i in "${arr[@]}"
+ do
+ _label="$(echo $i | cut -d'|' -f1)"
+ _keep="$(echo $i | cut -d'|' -f2)"
+ _OnCalendarSpec="$(echo $i | cut -d'|' -f3)"
+ _prefix="--prefix=znap"
+ cat > systemd/zfs-auto-snapshot-${_label}.service <<EOF
+[Unit]
+Description=ZFS $_label snapshot service
+
+[Service]
+ExecStart=$_PREFIX/bin/zfs-auto-snapshot --skip-scrub $_prefix --label=$_label --keep=$_keep //
+EOF
+
+ # write timer files
+ cat > systemd/zfs-auto-snapshot-${_label}.timer <<EOF
+# See systemd.timers and systemd.time manpages for details
+[Unit]
+Description=ZFS $_label snapshot timer
+
+[Timer]
+OnCalendar=$_OnCalendarSpec
+Persistent=true
+
+[Install]
+WantedBy=timers.target
+EOF
+ done
+}
+
+package() {
+ cd "$srcdir/${pkgname%-git}"
+
+ install -d "$pkgdir/usr/bin"
+ install -d "$pkgdir/usr/lib/systemd/system"
+ install -d "$pkgdir/usr/share/man/man8"
+ install -m 755 src/zfs-auto-snapshot.sh "$pkgdir/usr/bin/zfs-auto-snapshot"
+ install -m 644 src/zfs-auto-snapshot.8 "$pkgdir/usr/share/man/man8"
+ install -m 644 systemd/* "$pkgdir/usr/lib/systemd/system"
+}