diff --git a/install.sh b/install.sh index 56971ad..191d87e 100755 --- a/install.sh +++ b/install.sh @@ -109,7 +109,7 @@ check_dirs_and_files() { if [ ! -f "/etc/user/config/system.json" ]; then { - $SUDO_CMD echo ' + echo ' { "NETWORK": { "IP_POOL_START": "172.19.0.0", @@ -118,7 +118,9 @@ check_dirs_and_files() { } } '; - } > "/etc/user/config/system.json" + } > /tmp/system.json + + $SUDO_CMD mv /tmp/system.json /etc/user/config/system.json fi; { @@ -197,7 +199,7 @@ install_docker_apt() { $SUDO_CMD apt-get update $SUDO_CMD apt-get install ca-certificates curl gnupg $SUDO_CMD install -m 0755 -d /etc/apt/keyrings - $SUDO_CMD curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg + $SUDO_CMD curl -fsSL https://download.docker.com/linux/debian/gpg | $SUDO_CMD gpg --dearmor -o /etc/apt/keyrings/docker.gpg $SUDO_CMD chmod a+r /etc/apt/keyrings/docker.gpg . /etc/os-release; # set variable VERSION_CODENAME @@ -205,7 +207,7 @@ install_docker_apt() { DOCKER_SOURCE=$($SUDO_CMD cat /etc/apt/sources.list.d/docker.list | grep 'bullseye stable' | wc -l) if [ "$DOCKER_SOURCE" == "0" ]; then # add docker source to the source list - $SUDO_CMD echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian "$VERSION_CODENAME" stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null + $SUDO_CMD echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian "$VERSION_CODENAME" stable" | $SUDO_CMD tee /etc/apt/sources.list.d/docker.list > /dev/null $SUDO_CMD apt-get update fi @@ -365,7 +367,7 @@ if [ "$SMARTHOST_PROXY" == "yes" ]; then fi if [ "$DISCOVERY" == "yes" ] ; then - chmod a+x $DISCOVERY_DIR/service-discovery.sh + $SUDO_CMD chmod a+x $DISCOVERY_DIR/service-discovery.sh $DISCOVERY_DIR/service-discovery.sh $DISCOVERY_CONFIG_FILE; source $DISCOVERY_CONFIG_FILE; cat $DEST_FILE; @@ -373,7 +375,7 @@ if [ "$DISCOVERY" == "yes" ] ; then echo "Would you like to run discovered services? (Y/n)"; read -r ANSWER; if [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ] || [ "$ANSWER" == "" ] ; then - chmod a+x $DISCOVERY_DIR/service-files.sh + $SUDO_CMD chmod a+x $DISCOVERY_DIR/service-files.sh $DISCOVERY_DIR/service-files.sh $DEST_FILE & fi; fi; @@ -386,6 +388,7 @@ if [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ] || [ "$ANSWER" == "" ] ; then cp $DISCOVERY_CONFIG_FILE $DISCOVERY_CONFIG_FILE".copy"; cp $DEST_FILE $DEST_FILE".copy"; + DISCOVERY_CONFIG_FILENAME=$(basename $DISCOVERY_CONFIG_FILE); source $DISCOVERY_CONFIG_FILE; { echo '#!/bin/bash'; @@ -395,17 +398,36 @@ if [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ] || [ "$ANSWER" == "" ] ; then echo 'KEYS="'$KEYS'"; # separator space or |'; echo 'DEST_FILE="/usr/local/etc/results.txt";'; echo 'USE_SUDO=0;'; - } > /tmp/$DISCOVERY_CONFIG_FILE + } > /tmp/$DISCOVERY_CONFIG_FILENAME - $SUDO_CMD mv /tmp/$DISCOVERY_CONFIG_FILE /user/local/etc/$DISCOVERY_CONFIG_FILE + $SUDO_CMD mv /tmp/$DISCOVERY_CONFIG_FILENAME /usr/local/etc/$DISCOVERY_CONFIG_FILENAME { cat $PWD/.init_services; cat $DEST_FILE; } > /tmp/$DEST_FILE - $SUDO_CMD mv /tmp/$DEST_FILE /user/local/etc/$DEST_FILE + $SUDO_CMD mv /tmp/$DEST_FILE /usr/local/etc/$DEST_FILE + { + echo " +[Unit] +Description=Discover services + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/service-files.sh /usr/local/etc/results.txt + +[Install] +WantedBy=multi-user.target +"; + + } > /tmp/discovery.service + + $SUDO_CMD mv /tmp/discovery.service /etc/systemd/system/discovery.service + $SUDO_CMD systemctl enable discovery.service fi; +rm $PWD/.init_services +