summaryrefslogtreecommitdiffstats
path: root/ci/utils.inc.sh
diff options
context:
space:
mode:
Diffstat (limited to 'ci/utils.inc.sh')
-rw-r--r--ci/utils.inc.sh43
1 files changed, 43 insertions, 0 deletions
diff --git a/ci/utils.inc.sh b/ci/utils.inc.sh
new file mode 100644
index 0000000..618df78
--- /dev/null
+++ b/ci/utils.inc.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env bash
+# Derived from: https://gist.github.com/marcusandre/4b88c2428220ea255b83
+get_os() {
+ local ostype
+ ostype=$(<<< "$OSTYPE" tr '[:upper:]' '[:lower:]')
+ if [ -z "$ostype" ]; then
+ ostype=$(uname | tr '[:upper:]' '[:lower:]')
+ fi
+
+ case $ostype in
+ freebsd*) echo "freebsd" ;;
+ netbsd*) echo "netbsd" ;;
+ openbsd*) echo "openbsd" ;;
+ darwin*) echo "macos" ;;
+ linux*) echo "linux" ;;
+ cygwin*) echo "cygwin" ;;
+ msys*) echo "msys" ;;
+ mingw*) echo "win" ;;
+ *) echo "unknown"; exit 1 ;;
+ esac
+}
+
+get_linux_dist() {
+ if [[ -f /etc/os-release ]]; then
+ sh -c '. /etc/os-release && echo $ID'
+ elif type lsb_release >/dev/null 2>&1; then
+ lsb_release -si | tr '[:upper:]' '[:lower:]'
+ fi
+}
+
+# If target does not exist, create symlink from source to target.
+ensure_symlink_to_target() {
+ local from="${1:?Missing source}"
+ local to="${2:?Missing target}"
+
+ if [[ -e "${from}" && ! -e "${to}" ]]; then
+ if ! sudo ln -s "${from}" "${to}"
+ then
+ >&2 echo "Error: ${to} still not available after symlink. Aborting."
+ exit 1
+ fi
+ fi
+}