From 32bce2fa2a1cb917651af8067d9645163f93ab0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20P=C3=A9rex?= Date: Fri, 27 Jun 2025 07:22:13 +0100 Subject: [PATCH] chore: kcl-install --- distribution/kcl-install.sh | 38 +++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 distribution/kcl-install.sh diff --git a/distribution/kcl-install.sh b/distribution/kcl-install.sh new file mode 100755 index 0000000..5f76a2d --- /dev/null +++ b/distribution/kcl-install.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +[ -r env ] && . ./env +[ -r ../env ] && . ../env + +# KCL_VERSION="0.11.2" +KCL_SOURCE="https://github.com/kcl-lang/cli/releases" +KCL_TAGS="https://github.com/kcl-lang/cli/tags" +KCL_SITE="https://kcl-lang.io" + +if [ -z "$KCL_VERSION" ] ; then + echo "KCL_VERSION not set in env" + exit 1 +fi +if [ "$1" == "check" ] ; then + CHECK_ONLY="yes" +fi +OS="$(uname | tr '[:upper:]' '[:lower:]')" +ORG_OS=$(uname) +ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" +ORG_ARCH="$(uname -m)" + +has_kcl=$(type -P kcl) +num_version=0 +[ -n "$has_kcl" ] && kcl_version=$(kcl -v | cut -f3 -d" " | sed 's/ //g') && num_version=${kcl_version//\./} +expected_version_num=${KCL_VERSION//\./} +[ -z "$num_version" ] && num_version=0 +if [ -z "$CHECK_ONLY" ] && [ "$num_version" -lt "$expected_version_num" ] ; then + curl -fsSLO "https://github.com/kcl-lang/cli/releases/download/v${KCL_VERSION}/kcl-v${KCL_VERSION}-${OS}-${ARCH}.tar.gz" && + tar -xzf "kcl-v${KCL_VERSION}-${OS}-${ARCH}.tar.gz" && + sudo mv kcl /usr/local/bin/kcl && + rm -f "kcl-v${KCL_VERSION}-${OS}-${ARCH}.tar.gz" && + printf "%s\t%s\n" "kcl" "installed $KCL_VERSION" +elif [ -n "$CHECK_ONLY" ] ; then + printf "%s\t%s\t%s\n" "kcl" "$kcl_version" "expected $KCL_VERSION" +else + printf "%s\t%s\n" "kcl" "already $KCL_VERSION" +fi