summaryrefslogtreecommitdiff
path: root/net/openvswitch/files/ovsdb-server.in
diff options
context:
space:
mode:
Diffstat (limited to 'net/openvswitch/files/ovsdb-server.in')
-rw-r--r--net/openvswitch/files/ovsdb-server.in40
1 files changed, 40 insertions, 0 deletions
diff --git a/net/openvswitch/files/ovsdb-server.in b/net/openvswitch/files/ovsdb-server.in
new file mode 100644
index 000000000000..2701f85dbc77
--- /dev/null
+++ b/net/openvswitch/files/ovsdb-server.in
@@ -0,0 +1,40 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: ovsdb_server
+# REQUIRE: LOGIN
+
+. /etc/rc.subr
+
+name="ovsdb_server"
+rcvar=${name}_enable
+
+command="%%PREFIX%%/sbin/ovsdb-server"
+pidfile="%%PREFIX%%/var/run/ovsdb-server.pid"
+start_precmd="ovsdb_server_precmd"
+
+load_rc_config $name
+
+: ${ovsdb_server_enable="NO"}
+: ${ovsdb_server_sock="%%PREFIX%%/var/run/openvswitch/db.sock"}
+: ${ovsdb_server_database="%%PREFIX%%/etc/openvswitch/conf.db"}
+
+ovsdb_server_precmd() {
+ [ -e "`dirname $ovsdb_server_database`" ] || \
+ mkdir -p "`dirname $ovsdb_server_database`"
+ [ -e "$ovsdb_server_database" ] || \
+ %%PREFIX%%/bin/ovsdb-tool create "$ovsdb_server_database" \
+ %%PREFIX%%/share/openvswitch/vswitch.ovsschema
+}
+
+command_args="--detach --pidfile=$pidfile \
+ --remote=punix:$ovsdb_server_sock \
+ --remote=db:Open_vSwitch,managers \
+ --private-key=db:SSL,private_key \
+ --certificate=db:SSL,certificate \
+ --bootstrap-ca-cert=db:SSL,ca_cert \
+ $ovsdb_server_database"
+
+run_rc_command "$1"