/ Scripts / update.sh
update.sh
  1  #!/bin/bash
  2  
  3  # shellcheck source=./Scripts/defaults.sh
  4  . "$HOME"/RoninDojo/Scripts/defaults.sh
  5  
  6  _load_user_conf
  7  
  8  # Fix hosts file
  9  _update_24() {
 10      hostsfile="/etc/hosts"
 11  
 12      #test if there's a hostsfile, create if there isn't
 13      if test ! -f "${hostsfile}"; then
 14          if test -e "${hostsfile}"; then
 15              >&2 echo "${hostsfile} is present but not a regular file"
 16              exit 1
 17          fi
 18          sudo touch "${hostsfile}"
 19      fi
 20  
 21      #test if there's a 127.0.0.1 entry, edit when necessary
 22      if grep -q -E "^\s*127\.0\.0\.1(\s+\w+)+$" "${hostsfile}"; then
 23          if ! grep -q -E "^\s*127\.0\.0\.1(\s+\w+)*(\s+localhost)(\s+\w+)*$" "${hostsfile}"; then
 24              #edit existing entry, appending the "localhost" alias
 25              sudo sed -i -E 's/(\s*127\.0\.0\.1\s.*$)/\1 localhost/g' "${hostsfile}"
 26          fi
 27      else
 28          #append the missing entry
 29          echo $'\n127.0.0.1 localhost' | sudo tee -a "${hostsfile}" > /dev/null
 30      fi
 31  }
 32  
 33  # The last 1.x update ever
 34  _update_40() {
 35  
 36      sed -i 's/^samourai_commitish/#samourai_commitish/' "${HOME}/.config/RoninDojo/user.conf" # let the samoura_commitish be decided by the RD branch
 37      sed -i 's/#ronin_dojo_branch/ronin_dojo_branch/' "${HOME}/.config/RoninDojo/user.conf" # uncomment the line
 38  
 39      sed -i 's#ronin_dojo_branch=.*#ronin_dojo_branch="origin/utility/E-1"#' "${HOME}/.config/RoninDojo/user.conf"
 40  
 41      _ronindojo_update
 42  
 43      #update .bashrc with the warning
 44      sed -i '/^\/home\/ronindojo\/RoninDojo\/Scripts\/.logo$/a echo -e "\\nNOTICE\\n\\nYOUR CURRENT VERSION IS 1.15.1\\nRONINDOJO WILL NO LONGER UPDATE\\nTO MIGRATE TO RONINDOJO V2\\nPLEASE FLASH THE SYSTEM WITH THE LATEST IMAGE\\nAND RE-PAIR YOUR WALLET WITH DOJO\\n\\nEND OF NOTICE"\necho Press any key to continue\nread -n 1 -r -s' /home/ronindojo/.bashrc
 45  
 46      # Finalize
 47      touch "$HOME"/.config/RoninDojo/data/updates/40-"$(date +%m-%d-%Y)"
 48  
 49      _print_message "YOUR CURRENT VERSION IS 1.15.1 AND RONINDOJO WILL NO LONGER UPDATE."
 50      _print_message "TO MIGRATE TO RONINDOJO V2 PLEASE FLASH THE SYSTEM WITH THE LATEST IMAGE."
 51      _print_message "RE-PAIR YOUR WALLET WITH DOJO, OTHERWISE YOU WILL NOT SEE TRANSACTIONS."
 52      _pause "return"
 53  }
 54  
 55  # Fulcrum SSL expose migration
 56  _update_41(){
 57  
 58      if _is_fulcrum; then
 59          sudo sed -i 's/INDEXER_EXTERNAL=.*$/INDEXER_EXTERNAL=on/' "${dojo_path_my_dojo}"/conf/docker-indexer.conf
 60          sudo sed -i 's/INDEXER_EXTERNAL_IP=.*$/INDEXER_EXTERNAL_IP=0.0.0.0/' "${dojo_path_my_dojo}"/conf/docker-indexer.conf
 61      fi;
 62  
 63      sudo ufw allow from "${network_current}" to any port "50002" >/dev/null
 64      sudo ufw reload
 65  
 66      # Finalize
 67      touch "$HOME"/.config/RoninDojo/data/updates/41-"$(date +%m-%d-%Y)"
 68  }
 69  
 70  
 71  # Fulcrum Batch support migration
 72  _update_42(){
 73      if _is_fulcrum; then
 74          sudo sed -i 's/INDEXER_BATCH_SUPPORT=.*$/INDEXER_BATCH_SUPPORT=active/' "${dojo_path_my_dojo}"/conf/docker-indexer.conf
 75      else
 76          sudo sed -i 's/INDEXER_BATCH_SUPPORT=.*$/INDEXER_BATCH_SUPPORT=inactive/' "${dojo_path_my_dojo}"/conf/docker-indexer.conf
 77      fi;
 78  
 79      # Finalize
 80      touch "$HOME"/.config/RoninDojo/data/updates/42-"$(date +%m-%d-%Y)"
 81  }
 82  
 83  # v2.1.0: tor upgrade
 84  _update_43(){
 85  
 86      sudo apt-get update
 87      sudo apt-get install -y tor/bullseye-backports
 88  
 89      _setup_tor
 90  
 91      # Finalize
 92      touch "$HOME"/.config/RoninDojo/data/updates/43-"$(date +%m-%d-%Y)"
 93  }
 94  
 95  # Ronin UI fix for 2.1.0
 96  _update_44(){
 97  
 98      _ronin_ui_uninstall
 99      _ronin_ui_install
100  
101      # Finalize
102      touch "$HOME"/.config/RoninDojo/data/updates/44-"$(date +%m-%d-%Y)"
103  }
104  
105  # Docker daemon.json update for logs
106  _update_45(){
107      cd "${dojo_path_my_dojo}" || exit
108      ./dojo.sh stop
109  
110      sudo rm -rf /etc/docker/daemon.json
111      sudo tee "/etc/docker/daemon.json" << EOF > /dev/null
112  {
113    "log-driver": "json-file",
114    "log-opts": {
115      "max-size": "10m",
116      "max-file": "3"
117    },
118    "data-root": "${install_dir_docker}"
119  }
120  EOF
121      sudo systemctl daemon-reload
122      sudo systemctl restart docker
123  
124      cd - || exit
125      # Finalize
126      touch "$HOME"/.config/RoninDojo/data/updates/45-"$(date +%m-%d-%Y)"
127  }
128  
129  # Remove autologin
130  _update_46(){
131  
132      #remove the autologin by replacing the whole line
133      _disable_autologin
134  
135      # Finalize
136      touch "$HOME"/.config/RoninDojo/data/updates/46-"$(date +%m-%d-%Y)"
137  }
138  
139  # Fix NOPASSWD
140  _update_47(){
141  
142      #replace the NOPASSWD line with what it should be
143      sudo sed -i '/ronindojo/s/ALL) NOPASSWD:ALL/ALL) ALL/' /etc/sudoers
144  
145      #set sudo timoeut to 1 hour
146      sudo sed -i '/env_reset/a Defaults\ttimestamp_timeout=60' /etc/sudoers
147  
148      # Finalize
149      touch "$HOME"/.config/RoninDojo/data/updates/47-"$(date +%m-%d-%Y)"
150  }