From 9159682bb64dcfc2d417e1c74250874543088750 Mon Sep 17 00:00:00 2001 From: Christoph Date: Sat, 25 Feb 2017 15:42:56 +0100 Subject: [PATCH] Take care, not to delete directory where this script is running. Minor changes at script output --- .change_network_gateway.sh.swp | Bin 0 -> 28672 bytes change_network_gateway.sh | 110 +++++++++++++++++++++++++-------- 2 files changed, 84 insertions(+), 26 deletions(-) create mode 100644 .change_network_gateway.sh.swp diff --git a/.change_network_gateway.sh.swp b/.change_network_gateway.sh.swp new file mode 100644 index 0000000000000000000000000000000000000000..576e96c7722255b486e3f9b3a67a8a0dafe5069b GIT binary patch literal 28672 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 Notice: - !! To change the network, you have to chroot into /ro !! + !! If you are on a readonly system, chroot into /ro !! remountrw rebind on @@ -95,15 +116,27 @@ info (){ echo_OK() { - echo -en "\\033[45G[ \\033[1;32mOK\\033[0;39m ]\n" + if $terminal ; then + echo -en "\\033[45G[ \\033[1;32mOK\\033[0;39m ]\n" + else + echo " .. [ OK ]" + fi } echo_FAILED() { - echo -en "\\033[45G[ \\033[1;31mFAIL\\033[0;39m ]\n" + if $terminal ; then + echo -en "\\033[45G[ \\033[1;31mFAIL\\033[0;39m ]\n" + else + echo " .. [ FAIL ]" + fi } echo_SKIPPED() { - echo -en "\\033[45G[ \\033[37mSkipped\\033[0;39m ]\n" + if $terminal ; then + echo -en "\033[45G[ \033[37mSKIP\033[m ]\n" + else + echo " .. [ SKIP ]" + fi } [ $# -ne "1" ] && usage "wrong number of arguments" @@ -377,20 +410,50 @@ else fi -# - /usr/local/src directory +# - /root/bin directory # - +src_dir=${base_dir}/${network}/bin +dst_dir=$(realpath /root/bin) echo -en "\t/root/bin directory" -if [[ -d "${base_dir}/${network}/bin" ]]; then - if [[ ! -d "/root/bin" ]]; then - mkdir /root/bin > $logfile 2>&1 +omitted=false +msg="" +if [[ -d "$src_dir" ]]; then + if [[ ! -d "$dst_dir" ]]; then + mkdir $dst_dir > $logfile 2>&1 fi - cp -a ${base_dir}/${network}/bin/* /root/bin/ > $logfile 2>&1 + + # - Delete all existing files/directories of $dst_dir, but + # - ommit directory, where this script is running.. + # - + while IFS='' read -r -d '' file ; do + if [[ "$(basename $file)" = "$(basename $(realpath $(dirname $0)))" ]]; then + omitted=true + msg="Existing Directory '$(basename $file)' was not deleted, because this script is running there!" + continue + fi + rm -r $file + done < <(find "$dst_dir" -mindepth 1 -maxdepth 1 -print0) + while IFS='' read -r -d '' file ; do + if [[ "$(realpath $(dirname $0))" = "${dst_dir}/$(basename $file)" ]] ; then + omitted=true + if [[ -n "$msg" ]];then + msg="$msg\n\t New Directory '$(basename $file)' was also not copied." + continue + else + msg="Directory '$(basename $file)' was omitted, because this script is running there!" + fi + fi + cp -a ${file} ${dst_dir}/ > $logfile 2>&1 + done < <(find "$src_dir" -mindepth 1 -maxdepth 1 -print0) if ! $_rval ; then echo_FAILED error $(cat $logfile) else echo_OK fi + if $omitted ; then + info "$msg" + fi else echo_SKIPPED fi @@ -683,7 +746,6 @@ echo -en "\tSetting up rc.local.." if [ "$network" = "NONE-CKUBU" -o "$network" = "NONE-WF" -o "$network" = "GA-Ersatz" ];then cp -a ${base_dir}/rc.local.NONE /etc/rc.local > $logfile 2>&1 else - #cp -a ${base_dir}/rc.local /etc/rc.local cp -a ${base_dir}/${network}/rc.local.${network} /etc/rc.local > $logfile 2>&1 fi if [ "$?" != "0" ]; then @@ -693,28 +755,24 @@ else echo_OK fi -if $_add_support_if ; then - echo -e " After restarting, you can reach that device" - echo -e " at ip-address: \\033[1;33m172.16.1.1\\033[0;39m" -fi - +_error=false if [ "$(stat -c %d:%i /)" = "$(stat -c %d:%i /proc/1/root/.)" ]; then - warn "This is NOT a chrooted environment. Maybe thats ok. \n\n\t\033[1;37mIf this is a readonly system, take care, you are chrooted into /ro.\n\tOtherwise changes are not persistent.\033[m" + if [[ -d "/ro" ]] ; then + error "It seems, this is a readonly system and you are not chrooted.\n\n\t \033[1;37mChanges made by this script are not persistent!!\033[m\n\n\t Change root to directory '/ro' (\033[1;37mchroot /ro /bin/bash\033[m) and\n\t run this script again.\033[m" + #info "Change root to directory '/ro' (\033[1;37mchroot /ro /bin/bash\033[m) and run this script again.\033[m" + fi + + _error=true - #echo "" - #echo "" - #echo -e " \\033[1;31m Take care, you are chrooted into /ro. Otherwise" - #echo -e " changes are not persistent \\033[0;39m !!" - #echo "" - #echo "" else + info "Programm was running in a chrooted environment.\n\n\t\033[1;37mExit from chroot environment and restart to make changes active..\033[m" - #echo "" - #echo "" - #echo -e " \\033[1;33mExit from chroot environment and restart to make changes active..\\033[0;39m" - #echo "" +fi + +if $_add_support_if i&& ! $_error ; then + info "After restarting, you can reach this machine\n\t at ip-address: \033[1;33m172.16.1.1\033[m" fi exit 0