diff options
-rw-r--r-- | .SRCINFO | 18 | ||||
-rw-r--r-- | PKGBUILD | 18 | ||||
-rw-r--r-- | ipset-loader | 25 | ||||
-rw-r--r-- | ipset-loader@.service | 11 |
4 files changed, 72 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..c32b530a5b6f --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,18 @@ +pkgbase = ipset-loader-git + pkgdesc = ipset rule loader + pkgver = 0.1 + pkgrel = 1 + arch = any + license = GPL3 + makedepends = git + depends = ipset + depends = zstd + provides = ipset-loader + conflicts = ipset-loader + source = ipset-loader@.service + source = ipset-loader + sha512sums = SKIP + sha512sums = SKIP + +pkgname = ipset-loader-git + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..fcffab1a9944 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,18 @@ +pkgname=ipset-loader-git +pkgver=0.1 +pkgrel=1 +pkgdesc="ipset rule loader" +arch=(any) +license=(GPL3) +depends=(ipset zstd) +makedepends=(git) +provides=(ipset-loader) +conflicts=(ipset-loader) +source=("ipset-loader@.service" "ipset-loader") +sha512sums=(SKIP SKIP) + +package() { + install -Dm755 ipset-loader -t "$pkgdir"/usr/bin + install -Dm644 ipset-loader@.service -t "$pkgdir"/usr/lib/systemd/system/ +} + diff --git a/ipset-loader b/ipset-loader new file mode 100644 index 000000000000..0d6e43932962 --- /dev/null +++ b/ipset-loader @@ -0,0 +1,25 @@ +#!/bin/bash +if [ $# -eq 0 ]; then + echo "usage: $0 <ipset-file>" + echo "will also try ipset-file.zst if ipset-file does not exist." +fi + +if [ ! -f $1 ]; then + if [ ! -f $1.zst ]; then + echo "fatal error: neither $1 nor $1.zst is found." + exit 1 + else + echo "$1.zst is being loaded..." + zstdcat $1.zst | ipset restore -! + fi +else + if [[ $1 == *.zst ]]; then + echo "$1 is being loaded..." + zstdcat $1 | ipset restore -! + else + echo "$1 is being loaded..." + cat $1 | ipset restore -! + fi +fi + +exit $? diff --git a/ipset-loader@.service b/ipset-loader@.service new file mode 100644 index 000000000000..8e90d5999320 --- /dev/null +++ b/ipset-loader@.service @@ -0,0 +1,11 @@ +[Unit] +Description=Load ipset from files +After=network.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/ipset-loader /usr/share/ipset/%i + +[Install] +WantedBy=multi-user.target + |