#!/bin/bash # 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 . # Copyright 2019 Alessandro "Locutus73" Miele # You can download the latest version of this script from: # https://github.com/RetroDriven/MiSTer_UnofficialCores : ' ###### Disclaimer / Legal Information ###### By downloading ROM injected Core/RBF files you are agreeing to the following: * You are responsible for checking your local laws regarding the use of the ROM injected Core/RBF files. * You are authorized to own a license to use any the ROM injected Core/RBF file that you download. * You will not distribute any of these files without the appropriate permissions. * You own the original Arcade PCB for each ROM injected Core/RBF files that you download. * I take no responsibility for any data loss or anything, use the script at your own risk. ' # RetroDriven v1.0 - Changed Script as needed # ========= OPTIONS ================== URL="https://github.com" SCRIPT_URL="${URL}/RetroDriven/MiSTer_UnofficialCores/blob/master/Scripts/Updater_RetroDriven.sh" CURL_RETRY="--connect-timeout 15 --max-time 120 --retry 3 --retry-delay 5 --silent" # ========= ADVANCED OPTIONS ========= # ALLOW_INSECURE_SSL="true" will check if SSL certificate verification (see https://curl.haxx.se/docs/sslcerts.html ) # is working (CA certificates installed) and when it's working it will use this feature for safe curl HTTPS downloads, # otherwise it will use --insecure option for disabling SSL certificate verification. # If CA certificates aren't installed it's advised to install them (i.e. using security_fixes.sh). # ALLOW_INSECURE_SSL="false" will never use --insecure option and if CA certificates aren't installed # any download will fail. ALLOW_INSECURE_SSL="true" # ========= CODE STARTS HERE ========= # get the name of the script, or of the parent script if called through a 'curl ... | bash -' ORIGINAL_SCRIPT_PATH="${0}" [[ "${ORIGINAL_SCRIPT_PATH}" == "bash" ]] && \ ORIGINAL_SCRIPT_PATH="$(ps -o comm,pid | awk -v PPID=${PPID} '$2 == PPID {print $1}')" # ini file can contain user defined variables (as bash commands) # Load and execute the content of the ini file, if there is one INI_PATH="${ORIGINAL_SCRIPT_PATH%.*}.ini" if [[ -f "${INI_PATH}" ]] ; then TMP=$(mktemp) # preventively eliminate DOS-specific format and exit command dos2unix < "${INI_PATH}" 2> /dev/null | grep -v "^exit" > ${TMP} source ${TMP} rm -f ${TMP} fi # test network and https by pinging the target website SSL_SECURITY_OPTION="" curl ${CURL_RETRY} "${URL}" > /dev/null 2>&1 case $? in 0) ;; 60) if [[ "${ALLOW_INSECURE_SSL}" == "true" ]] then SSL_SECURITY_OPTION="--insecure" else echo "CA certificates need" echo "to be fixed for" echo "using SSL certificate" echo "verification." echo "Please fix them i.e." echo "using security_fixes.sh" exit 2 fi ;; *) echo "No Internet connection" exit 1 ;; esac # download and execute the latest mister_updater.sh echo "Downloading and executing" echo "${SCRIPT_URL/*\//}" echo "" curl \ ${CURL_RETRY} \ ${SSL_SECURITY_OPTION} \ --fail \ --location \ "${SCRIPT_URL}?raw=true" | \ bash - exit 0