#!/bin/bash [ "$1" == "-h" ] && echo "install-crun.sh install|update|remove|restart|scripts|reinstall" && exit 1 SERVICE_NAME="" SCRIPTS_DEPLOY_PATH="" [ -r "env-crun" ] && . ./env-crun [ -r "common.sh" ] && . ./common.sh ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" OS="$(uname | tr '[:upper:]' '[:lower:]')" CRUN_VERSION="${CRUN_VERSION:-1.21}" CRUN_URL="https://github.com/containers/crun/releases/download/${CRUN_VERSION}/crun-${CRUN_VERSION}-${OS}-${ARCH}" CMD_TSK=${CMD_TSK:-${1:-install}} export LC_CTYPE=C.UTF-8 LANG=C.UTF-8 _update_binary() { [ -z "$CRUN_VERSION" ] && return 1 local curr_vers has_crun has_crun=$(type crun 2>/dev/null) [ -n "$has_crun" ] && curr_vers=$(crun --version 2>/dev/null | grep "^crun version" | awk '{print $3}') [ "$curr_vers" == "$CRUN_VERSION" ] && return 0 if ! curl -fsSL "$CRUN_URL" -o crun; then echo "error downloading crun"; return 1 fi chmod +x crun && sudo mv crun /usr/local/bin/crun [ -f "/usr/bin/crun" ] && sudo mv /usr/bin/crun /usr/bin/_crun return 0 } _config_crun() { return 0; } case "$CMD_TSK" in reinstall) sudo rm -f /usr/local/bin/crun ;& install) _update_binary || { echo "error crun install"; exit 1; } _config_crun ;; update) _common_update ;; scripts) _common_deploy_scripts ;; config) _config_crun ;; restart) _common_service_restart ;; remove) sudo rm -f /usr/local/bin/crun ;; delete) sudo rm -f /usr/local/bin/crun /usr/bin/_crun ;; esac