From 80bcc644f4e3de945b8b6e82030ad8280a8b4dfe Mon Sep 17 00:00:00 2001
From: David Beniamine <david.beniamine@tetras-libre.fr>
Date: Fri, 14 Sep 2018 09:33:36 +0200
Subject: [PATCH] Registry service

---
 registry/scripts/registry.sh      | 44 +++++++++++++++++++++++++++++++
 registry/service/registry.service |  9 +++++++
 2 files changed, 53 insertions(+)
 create mode 100644 registry/scripts/registry.sh
 create mode 100644 registry/service/registry.service

diff --git a/registry/scripts/registry.sh b/registry/scripts/registry.sh
new file mode 100644
index 0000000..e19427a
--- /dev/null
+++ b/registry/scripts/registry.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+# Copyright (C) 2018  Tetras Libre <Contact@Tetras-Libre.fr>
+# Author: Beniamine, David <David.Beniamine@Tetras-Libre.fr>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+getip(){
+    awk '/^lease/{IP=$2} /hardware ethernet/{gsub(";","",$3);if($3 == "'$1'"){print IP}}' \
+        < /var/lib/dhcp/dhcpd.leases
+}
+
+IP=$(ip a | awk '/inet.*containers/ {print $2}' | cut -d / -f 1)
+# broadcast=$(ip a | awk '/inet.*eth1/ {print $4}' | cut -d / -f 1)
+# subnet=$(ip a | awk '/inet.*containers/ {print $2}' | cut -d / -f 1 | cut -d . -f 1-3)
+# host=$subnet.51
+port=9998
+conf_dir="/etc/registry"
+
+if [ ! -d $conf_dir ]
+then
+    mkdir $conf_dir
+fi
+
+while true
+do
+    line=`netcat -l $IP $port`
+    if [ $(echo "$line" | egrep -c "^([0-9a-f]{2}:?){6} .*$") -eq 1 ]
+    then
+        echo $line >> $conf_dir
+    fi
+done
+
diff --git a/registry/service/registry.service b/registry/service/registry.service
new file mode 100644
index 0000000..c9bedd9
--- /dev/null
+++ b/registry/service/registry.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Registry Service
+After=network.target
+
+[Service]
+ExecStart=/opt/eole-wol/registry/scripts/registry.sh
+
+[Install]
+WantedBy=multi-user.target
-- 
GitLab