diff --git a/install.sh b/install.sh index 320d332..fe193ce 100755 --- a/install.sh +++ b/install.sh @@ -1,4 +1,8 @@ -#!/bin/bash +#!/usr/bin/env bash + +check_exists() { + command -v "$1" > /dev/null +} sha256_verify () { @@ -11,6 +15,19 @@ sha256_verify () fi } +# http_get url filename +http_get () +{ + if check_exists curl; then + curl --retry 5 -L "$1" -o "$2" + elif check_exists wget; then + wget "$1" -O "$2" + else + echo "Neither curl nor wget present; please install one of them using your OS package manager." + kill $$ + fi +} + deps_install () { common_deps=( \ @@ -95,7 +112,7 @@ dep_get () pushd cache if ! sha256_verify "${pkg_hash}" "${pkg_name}"; then - curl --retry 5 -L -O "${pkg_url}/${pkg_name}" + http_get "${pkg_url}/${pkg_name}" "${pkg_name}" fi if ! sha256_verify "${pkg_hash}" "${pkg_name}"; then return 1 diff --git a/test/run_tests.sh b/test/run_tests.sh index 9c4be69..c9160e2 100755 --- a/test/run_tests.sh +++ b/test/run_tests.sh @@ -1,4 +1,8 @@ -#!/bin/bash +#!/usr/bin/env bash + +check_exists() { + command -v "$1" > /dev/null +} sha256_verify () { @@ -11,6 +15,19 @@ sha256_verify () fi } +# http_get url filename +http_get () +{ + if check_exists curl; then + curl --retry 5 -L "$1" -o "$2" + elif check_exists wget; then + wget "$1" -O "$2" + else + echo "Neither curl nor wget present; please install one of them using your OS package manager." + kill $$ + fi +} + run_jm_tests () { if [[ -z "${VIRTUAL_ENV}" ]]; then @@ -27,7 +44,7 @@ run_jm_tests () pushd "${jm_source}" if ! sha256_verify 'ce3a4ddc777343645ccd06ca36233b5777e218ee89d887ef529ece86a917fc33' 'miniircd.tar.gz'; then - curl --retry 5 -L https://github.com/JoinMarket-Org/miniircd/archive/master.tar.gz -o miniircd.tar.gz + http_get "https://github.com/JoinMarket-Org/miniircd/archive/master.tar.gz" "miniircd.tar.gz" fi if [[ ! -x ${jm_source}/miniircd/miniircd ]]; then rm -rf ./miniircd