1- #! /bin/sh
1+ #! /usr/ bin/env bash
22
3- set -eu
3+ set -euo pipefail
44
55# allow overriding the version
66VERSION=${CODECRAFTERS_CLI_VERSION:- v46}
77
8+ MUTED=' \033[0;2m'
9+ GREEN=' \033[0;32m'
10+ NC=' \033[0m' # No Color
11+
812PLATFORM=$( uname -s)
913ARCH=$( uname -m)
1014
@@ -35,9 +39,7 @@ INSTALL_PATH=${INSTALL_PATH:-$INSTALL_DIR/codecrafters}
3539
3640DOWNLOAD_URL=" https://github.com/codecrafters-io/cli/releases/download/${VERSION} /${VERSION} _${OS} _${ARCH} .tar.gz"
3741
38- echo " This script will automatically install codecrafters (${VERSION} ) for you."
39- echo " You will be prompted for your password by sudo if needed."
40- echo " Installation path: ${INSTALL_PATH} "
42+ echo -e " Downloading ${GREEN} CodeCrafters CLI ${MUTED} (${VERSION} )${NC} ..."
4143
4244if [ " $( id -u) " = " 0" ]; then
4345 echo " Warning: this script is currently running as root. This is dangerous. "
@@ -53,31 +55,37 @@ TEMP_FILE=$(mktemp "${TMPDIR:-/tmp}/.codecrafterscli.XXXXXXXX")
5355TEMP_FOLDER=$( mktemp -d " ${TMPDIR:-/ tmp} /.codecrafterscli-headers.XXXXXXXX" )
5456
5557cleanup () {
58+ echo -e " ${NC} " # Ensure none of our colors leak
5659 rm -f " $TEMP_FILE "
5760 rm -rf " $TEMP_FOLDER "
5861}
5962
6063trap cleanup EXIT
6164
62- echo Downloading CodeCrafters CLI...
65+ echo -e " ${MUTED} " # Muted progress bar
6366
6467HTTP_CODE=$( curl -SL --progress-bar " $DOWNLOAD_URL " --output " $TEMP_FILE " --write-out " %{http_code}" )
6568if [ " $HTTP_CODE " -lt 200 ] || [ " $HTTP_CODE " -gt 299 ]; then
69+ echo -e " ${NC} "
6670 echo " error: your platform and architecture (${PLATFORM} -${ARCH} ) is unsupported."
6771 exit 1
6872fi
6973
74+ echo -e " ${NC} "
75+
7076tar xzf " $TEMP_FILE " -C " $TEMP_FOLDER " codecrafters
7177
7278chmod 0755 " $TEMP_FOLDER /codecrafters"
7379
7480if ! mkdir -p " $INSTALL_DIR " 2> /dev/null; then
75- sudo -k mkdir -p " $INSTALL_DIR "
81+ echo -e " ${MUTED} Note:${NC} You might need to enter your password to install."
82+ sudo mkdir -p " $INSTALL_DIR "
7683fi
84+
7785if ! mv " $TEMP_FOLDER /codecrafters" " $INSTALL_PATH " 2> /dev/null; then
78- sudo -k mv " $TEMP_FOLDER /codecrafters" " $INSTALL_PATH "
86+ echo -e " ${MUTED} Note:${NC} You might need to enter your password to install."
87+ sudo mv " $TEMP_FOLDER /codecrafters" " $INSTALL_PATH "
7988fi
8089
81- echo " Installed $( " $INSTALL_PATH " --version) "
82-
83- echo ' Done!'
90+ echo " "
91+ echo -e " ${GREEN} ✔︎${NC} CodeCrafters CLI installed! ${MUTED} Version: $( " $INSTALL_PATH " --version) ${NC} "
0 commit comments