From 879ab883fbaafeb6758b26a730cca2cf77432811 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sun, 3 Jul 2016 19:43:16 +0100 Subject: [PATCH] functions to remove babel --- src/freedombone-app-babel | 71 +++++++++++++++++++++++------------- src/freedombone-mesh-install | 19 +++++++++- 2 files changed, 63 insertions(+), 27 deletions(-) diff --git a/src/freedombone-app-babel b/src/freedombone-app-babel index b39e3548..04b5a3e5 100755 --- a/src/freedombone-app-babel +++ b/src/freedombone-app-babel @@ -32,38 +32,57 @@ ENABLE_BABEL="no" BABEL_PORT=6696 -function configure_firewall_for_babel { - if grep -Fxq "configure_firewall_for_babel" $COMPLETION_FILE; then - return - fi - if [[ $ENABLE_BABEL != "yes" ]]; then - return - fi - iptables -A INPUT -i $WIFI_INTERFACE -p udp --dport $BABEL_PORT -j ACCEPT - function_check save_firewall_settings - save_firewall_settings +function remove_babel { + if ! grep -Fxq "mesh_babel" $COMPLETION_FILE; then + return + fi - OPEN_PORTS+=("Babel $BABEL_PORT") - echo 'configure_firewall_for_babel' >> $COMPLETION_FILE + ${PROJECT_NAME}-mesh-install -f babel --remove yes + if [ ! "$?" = "0" ]; then + echo $'Failed to remove babel' + exit 83658 + fi + + iptables -D INPUT -i $WIFI_INTERFACE -p udp --dport $BABEL_PORT -j ACCEPT + function_check save_firewall_settings + save_firewall_settings + + sed -i '/mesh_babel/d' $COMPLETION_FILE + sed -i '/configure_firewall_for_babel/d' $COMPLETION_FILE +} + +function configure_firewall_for_babel { + if grep -Fxq "configure_firewall_for_babel" $COMPLETION_FILE; then + return + fi + if [[ $ENABLE_BABEL != "yes" ]]; then + return + fi + iptables -A INPUT -i $WIFI_INTERFACE -p udp --dport $BABEL_PORT -j ACCEPT + function_check save_firewall_settings + save_firewall_settings + + OPEN_PORTS+=("Babel $BABEL_PORT") + echo 'configure_firewall_for_babel' >> $COMPLETION_FILE } function mesh_babel { - if grep -Fxq "mesh_babel" $COMPLETION_FILE; then - return - fi - if [[ $ENABLE_BABEL != "yes" ]]; then - return - fi + if grep -Fxq "mesh_babel" $COMPLETION_FILE; then + return + fi + if [[ $ENABLE_BABEL != "yes" ]]; then + return + fi - ${PROJECT_NAME}-mesh-install -f babel - if [ ! "$?" = "0" ]; then - echo $'Failed to install babel' - exit 67242 - fi + ${PROJECT_NAME}-mesh-install -f babel + if [ ! "$?" = "0" ]; then + echo $'Failed to install babel' + exit 67242 + fi - function_check configure_firewall_for_babel - configure_firewall_for_babel - echo 'mesh_babel' >> $COMPLETION_FILE + function_check configure_firewall_for_babel + configure_firewall_for_babel + echo 'mesh_babel' >> $COMPLETION_FILE } # NOTE: deliberately there is no "exit 0" diff --git a/src/freedombone-mesh-install b/src/freedombone-mesh-install index 57d28097..3ded1046 100755 --- a/src/freedombone-mesh-install +++ b/src/freedombone-mesh-install @@ -77,6 +77,8 @@ INSTALL_DIR=$HOME/build MESH_INSTALL_DIR=/var/lib +REMOVE='no' + source /usr/local/bin/${PROJECT_NAME}-utils-git if [ -f /usr/bin/${PROJECT_NAME}-utils-git ]; then source /usr/bin/${PROJECT_NAME}-utils-git @@ -178,6 +180,13 @@ function mesh_babel { $CHROOT_PREFIX systemctl enable babel } +function mesh_babel_remove { + $CHROOT_PREFIX systemctl stop babel + $CHROOT_PREFIX apt-get -y remove --purge babeld + rm ${rootdir}/var/lib/babel + rm ${rootdir}/etc/systemd/system/babel.service +} + function mesh_avahi { $CHROOT_PREFIX apt-get -y install avahi-utils avahi-autoipd avahi-dnsconfd @@ -1030,6 +1039,10 @@ do shift FRIENDS_MIRRORS_SERVER="$1" ;; + --remove) + shift + REMOVE="$1" + ;; *) # unknown option ;; @@ -1039,7 +1052,11 @@ do done if [[ $FN == 'babel' ]]; then - mesh_babel + if [[ $REMOVE != 'yes' ]]; then + mesh_babel + else + mesh_babel_remove + fi fi if [[ $FN == 'babel_client' ]]; then mesh_babel_client