git: 33e91dbbe199 - main - sysutils/egress-monitor: Add new port

From: Juraj Lutter <otis_at_FreeBSD.org>
Date: Tue, 15 Nov 2022 17:58:45 UTC
The branch main has been updated by otis:

URL: https://cgit.FreeBSD.org/ports/commit/?id=33e91dbbe19992d88fa70f0d303112b14882394b

commit 33e91dbbe19992d88fa70f0d303112b14882394b
Author:     Goran Mekić <meka@tilda.center>
AuthorDate: 2022-11-12 22:12:55 +0000
Commit:     Juraj Lutter <otis@FreeBSD.org>
CommitDate: 2022-11-15 17:57:08 +0000

    sysutils/egress-monitor: Add new port
    
    Add sysutils/egress-monitor, a tool that is watching for default routes
    changes and sets the interface group. When the default route is added,
    egress-monitor sets the group of that interface to appropriate egress.
    
    WWW: https://github.com/mekanix/egress-monitor
    
    PR:             267731
    Tested by:      dfr
---
 sysutils/Makefile                               |  1 +
 sysutils/egress-monitor/Makefile                | 22 ++++++++++++++++++++++
 sysutils/egress-monitor/distinfo                |  3 +++
 sysutils/egress-monitor/files/egress-monitor.in | 22 ++++++++++++++++++++++
 sysutils/egress-monitor/files/pkg-message.in    |  8 ++++++++
 sysutils/egress-monitor/pkg-descr               |  4 ++++
 6 files changed, 60 insertions(+)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index a59b7afef052..689b10b06a34 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -335,6 +335,7 @@
     SUBDIR += eclat
     SUBDIR += edid-decode
     SUBDIR += edk2
+    SUBDIR += egress-monitor
     SUBDIR += eject
     SUBDIR += eksctl
     SUBDIR += endian
diff --git a/sysutils/egress-monitor/Makefile b/sysutils/egress-monitor/Makefile
new file mode 100644
index 000000000000..c0621f6dff23
--- /dev/null
+++ b/sysutils/egress-monitor/Makefile
@@ -0,0 +1,22 @@
+PORTNAME=	egress-monitor
+DISTVERSION=	0.0.3
+CATEGORIES=	sysutils
+
+MAINTAINER=	meka@tilda.center
+COMMENT=	Set network interface groups based on default routes
+WWW=		https://github.com/mekanix/egress-monitor
+
+LICENSE=	BSD2CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		uidfix
+USE_RC_SUBR=	egress-monitor
+SUB_FILES=	pkg-message
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	mekanix
+
+PLIST_FILES=	man/man1/egress-monitor.1.gz \
+		sbin/egress-monitor
+
+.include <bsd.port.mk>
diff --git a/sysutils/egress-monitor/distinfo b/sysutils/egress-monitor/distinfo
new file mode 100644
index 000000000000..664dd70da4bf
--- /dev/null
+++ b/sysutils/egress-monitor/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1668281396
+SHA256 (mekanix-egress-monitor-0.0.3_GH0.tar.gz) = 74302e0fea9be384d791d7610c85a783696f71ab2ca005e98e590d14b12e1da5
+SIZE (mekanix-egress-monitor-0.0.3_GH0.tar.gz) = 4937
diff --git a/sysutils/egress-monitor/files/egress-monitor.in b/sysutils/egress-monitor/files/egress-monitor.in
new file mode 100644
index 000000000000..e76cf965f6e4
--- /dev/null
+++ b/sysutils/egress-monitor/files/egress-monitor.in
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+# PROVIDE: egress-monitor
+# KEYWORD: shutdown
+# REQUIRE: NETWORKING
+# BEFORE: pf
+
+. /etc/rc.subr
+
+name=egress_monitor
+desc="default route monitor"
+rcvar=${name}_enable
+load_rc_config $name
+
+: ${egress_monitor_enable:="NO"}
+
+procname="%%PREFIX%%/sbin/egress-monitor"
+command="/usr/sbin/daemon"
+command_args="-S -T ${name} ${procname}"
+
+run_rc_command $*
+
diff --git a/sysutils/egress-monitor/files/pkg-message.in b/sysutils/egress-monitor/files/pkg-message.in
new file mode 100644
index 000000000000..ba4cb9b9c771
--- /dev/null
+++ b/sysutils/egress-monitor/files/pkg-message.in
@@ -0,0 +1,8 @@
+[
+{ type: install
+  message: <<EOM
+Please note that egress-monitor will not pick up changes in net.fibs sysctl, so
+if you change it, you have to "service egress-monitor restart".
+EOM
+}
+]
diff --git a/sysutils/egress-monitor/pkg-descr b/sysutils/egress-monitor/pkg-descr
new file mode 100644
index 000000000000..cd15befd4e37
--- /dev/null
+++ b/sysutils/egress-monitor/pkg-descr
@@ -0,0 +1,4 @@
+Watching for default routes changes and sets the interface group. When the
+default route is added, egress-monitor sets the group of that interface to
+appropriate egress. That means for IPv4 and FIB 0 (default one) the group will
+be v4fib0egress. In general, the group name is v<4|6>fib<number>egress.