Skip to content

Commit 2e5556f

Browse files
authored
Merge pull request #69 from codecrafters-io/update-install-script-prompts
Update install.sh to improve user prompts and remove redundant messages.
2 parents 047dce7 + ee9f933 commit 2e5556f

File tree

2 files changed

+20
-12
lines changed

2 files changed

+20
-12
lines changed

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
runs-on: ubuntu-latest
2020
steps:
2121
- uses: actions/checkout@v4
22-
- run: dash -x install.sh
22+
- run: bash install.sh
2323
- run: codecrafters --version
2424

2525
install-cli-windows:

install.sh

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1-
#!/bin/sh
1+
#!/usr/bin/env bash
22

3-
set -eu
3+
set -euo pipefail
44

55
# allow overriding the version
66
VERSION=${CODECRAFTERS_CLI_VERSION:-v46}
77

8+
MUTED='\033[0;2m'
9+
GREEN='\033[0;32m'
10+
NC='\033[0m' # No Color
11+
812
PLATFORM=$(uname -s)
913
ARCH=$(uname -m)
1014

@@ -35,9 +39,7 @@ INSTALL_PATH=${INSTALL_PATH:-$INSTALL_DIR/codecrafters}
3539

3640
DOWNLOAD_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

4244
if [ "$(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")
5355
TEMP_FOLDER=$(mktemp -d "${TMPDIR:-/tmp}/.codecrafterscli-headers.XXXXXXXX")
5456

5557
cleanup() {
58+
echo -e "${NC}" # Ensure none of our colors leak
5659
rm -f "$TEMP_FILE"
5760
rm -rf "$TEMP_FOLDER"
5861
}
5962

6063
trap cleanup EXIT
6164

62-
echo Downloading CodeCrafters CLI...
65+
echo -e "${MUTED}" # Muted progress bar
6366

6467
HTTP_CODE=$(curl -SL --progress-bar "$DOWNLOAD_URL" --output "$TEMP_FILE" --write-out "%{http_code}")
6568
if [ "$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
6872
fi
6973

74+
echo -e "${NC}"
75+
7076
tar xzf "$TEMP_FILE" -C "$TEMP_FOLDER" codecrafters
7177

7278
chmod 0755 "$TEMP_FOLDER/codecrafters"
7379

7480
if ! 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"
7683
fi
84+
7785
if ! 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"
7988
fi
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

Comments
 (0)