aboutsummaryrefslogtreecommitdiffstats
path: root/hyperterm/core/update.sh
diff options
context:
space:
mode:
Diffstat (limited to 'hyperterm/core/update.sh')
-rw-r--r--hyperterm/core/update.sh161
1 files changed, 161 insertions, 0 deletions
diff --git a/hyperterm/core/update.sh b/hyperterm/core/update.sh
new file mode 100644
index 0000000..6794a99
--- /dev/null
+++ b/hyperterm/core/update.sh
@@ -0,0 +1,161 @@
+#!/bin/bash
+# shellcheck source=/dev/null
+#------------------
+# Update functions
+#------------------
+function _which() {
+ command -v "$1" &> /dev/null
+}
+
+# Check URL's
+# ---------------------
+function _url_exists() {
+ if _which wget; then
+ if wget --spider "$1" 2>/dev/null; then
+ return 0 # URL 'ok'
+ else
+ return 1 # URL 'fail'
+ fi
+ elif _which curl; then
+ if curl --output /dev/null --silent --head --fail "$1"; then
+ return 0 # URL 'ok'
+ else
+ return 1 # URL 'fail'
+ fi
+ fi
+}
+
+function _urls() {
+ URL_1="https://git.sr.ht/~heckyel/hyperterm"
+ URL_2="https://notabug.org/heckyel/hyperterm"
+
+ if [[ $(_url_exists "$URL_1") -eq 0 ]]; then
+ URL="$URL_1"
+ RAW="$URL_1/blob/master"
+ elif [[ $(_url_exists "$URL_2") -eq 0 ]]; then
+ URL="$URL_2"
+ RAW="$URL_2/raw/master"
+ fi
+}
+# ----------------------
+
+function ifexists_custom() {
+
+ _urls "$@"
+
+ if [ ! -e "$HOME/.hyperterm/_custom.sh" ]; then
+ case $1 in
+ wget) wget "$RAW/hyperterm/_custom.sh" -O "$HOME/.hyperterm/_custom.sh" ;;
+ curl) curl "$RAW/hyperterm/_custom.sh" -o "$HOME/.hyperterm/_custom.sh" ;;
+ git) cp -v /tmp/hyperterm/hyperterm/_custom.sh "$HOME/.hyperterm/" ;;
+ esac
+ fi
+}
+
+function updbashrc() {
+
+ _urls "$@"
+
+ # data integration
+ if _which wget; then
+ wget -nv "$RAW/hyperterm/hyperterm.sha512" -O "$HOME/.hyperterm/hyperterm.sha512" &> /dev/null
+ ifexists_custom wget &> /dev/null
+ elif _which curl; then
+ curl "$RAW/hyperterm/hyperterm.sha512" -o "$HOME/.hyperterm/hyperterm.sha512" &> /dev/null
+ ifexists_custom curl &> /dev/null
+ fi
+
+ # checksum of data verification
+ (cd "$HOME/.hyperterm/" && sha512sum -c hyperterm.sha512 &> /dev/null)
+ _interger=$?
+
+ if _which git; then
+ if [[ "$_interger" -eq 0 ]]; then
+ # Import colors
+ _colors_bash "$@"
+ printf '%b' "${BOLD}${CYAN}"
+ printf '%s\n' ' __ __ ______ '
+ printf '%s\n' ' / / / /_ ______ ___ ____/_ __/__ _________ ___ '
+ printf '%s\n' ' / /_/ / / / / __ \/ _ \/ ___// / / _ \/ ___/ __ `__ \ '
+ printf '%s\n' ' / __ / /_/ / /_/ / __/ / / / / __/ / / / / / / / '
+ printf '%s\n' ' /_/ /_/\__, / .___/\___/_/ /_/ \___/_/ /_/ /_/ /_/ '
+ printf '%s\n' ' /____/_/ '
+ printf '%s\n' ' '
+ printf '%b' "${BOLD}${GREY}"
+ msg "¡Hurra! HyperTerm se ha actualizado y/o está en la versión actual." \
+ "Hooray! HyperTerm has been updated and/or is at the current version."
+
+ msg "Consigue tu copia de HyperTerm en: https://notabug.org/heckyel/hyperterm" \
+ "Get your HyperTerm swag at: https://notabug.org/heckyel/hyperterm"
+ printf '%b\n' "$RESET"
+ else
+ if [[ $(_url_exists "$URL") -eq 0 ]]; then
+ # clone '--depth=1' not support cgit
+ (git clone $URL /tmp/hyperterm/ --depth=1 &> /dev/null)
+ printf '%s\r' "##### (33%)"
+ sleep 1
+ # core
+ for i in autocomplete.sh colors.sh git.sh languages.sh status.sh update.sh; do
+ install -m644 /tmp/hyperterm/hyperterm/core/$i "$HOME/.hyperterm/core/$i"
+ done
+ # themes
+ for i in default.sh joy.sh light_theme.sh pure.sh special.sh; do
+ install -m644 /tmp/hyperterm/hyperterm/themes/$i "$HOME/.hyperterm/themes/$i"
+ done
+ # tools
+ (cp -f /tmp/hyperterm/hyperterm/tools/* "$HOME/.hyperterm/tools/" &> /dev/null)
+
+ for i in hyperterm.sh hyperterm.sha512; do
+ install -m644 /tmp/hyperterm/hyperterm/$i "$HOME/.hyperterm/$i"
+ done
+ (cp -f /tmp/hyperterm/.bash_profile "$HOME/" &> /dev/null)
+ printf '%s\r' "############# (66%)"
+ (ifexists_custom git &> /dev/null)
+ sleep 1
+ (rm -fr /tmp/hyperterm/)
+ printf '%s\n' "####################### (100%) done!"
+ source "$HOME/.bashrc"
+ else
+ msg_err "El repo esta deshabilitado o no hay conexión a Internet" \
+ "The repo is disabled or connection failed"
+ return 1
+ fi
+ fi
+ else
+ msg_err "No hay curl y git. Por favor, instale los programas para actualizar HyperTerm" \
+ "I couldn't find not curl and git. Please, install the programs to update HyperTerm"
+ return 1
+ fi
+}
+
+function updbashrc_custom() {
+
+ _urls "$@"
+
+ if [[ $(_url_exists "$URL") -eq 0 ]]; then
+ while true
+ do
+ function _copy_c() {
+ if _which wget; then
+ wget "$RAW/hyperterm/_custom.sh" -O "$HOME/.hyperterm/_custom.sh"; source "$HOME/.bashrc"
+ elif _which curl; then
+ curl "$RAW/hyperterm/_custom.sh" -o "$HOME/.hyperterm/_custom.sh"; source "$HOME/.bashrc"
+ fi
+ }
+
+ question=$(msg "¿Estás seguro de sobre-escribir _custom.sh? [s/N]: " \
+ "Are you sure to overwrite _custom.sh? [y/N]: ")
+ read -r -p "$question" input
+ case $input in
+ [sS]|[yY]) _copy_c "$@"; break ;;
+ [nN]|"") break ;;
+ *) msg "Por favor responde sí o no" \
+ "Please answer yes or no.";;
+ esac
+ done
+ else
+ msg_err "El repo esta deshabilitado o no hay conexión a Internet" \
+ "The repo is disabled or connection failed"
+ return 1
+ fi
+}