summaryrefslogtreecommitdiffhomepage
path: root/install
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-11-19 12:44:35 -0600
committerAdam <[email protected]>2025-11-19 12:44:35 -0600
commit8bad5131407c94dca19880551f8235fc48164b40 (patch)
treef55386c2994bff589a12858ec583844f38170042 /install
parent1ff5d888c287e6d585e6d72a068c3c633f9a5d78 (diff)
downloadopencode-8bad5131407c94dca19880551f8235fc48164b40.tar.gz
opencode-8bad5131407c94dca19880551f8235fc48164b40.zip
Revert "feat(cli): better install script output"
This reverts commit 24bb293136502841bebc4668d4b72ec2a02a65d4.
Diffstat (limited to 'install')
-rwxr-xr-xinstall126
1 files changed, 9 insertions, 117 deletions
diff --git a/install b/install
index 37864b4ed..42ae846ef 100755
--- a/install
+++ b/install
@@ -2,8 +2,9 @@
set -euo pipefail
APP=opencode
-MUTED='\033[0;2m'
RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
ORANGE='\033[38;2;255;140;0m'
NC='\033[0m' # No Color
@@ -66,8 +67,8 @@ print_message() {
local color=""
case $level in
- info) color="${NC}" ;;
- warning) color="${NC}" ;;
+ info) color="${GREEN}" ;;
+ warning) color="${YELLOW}" ;;
error) color="${RED}" ;;
esac
@@ -85,110 +86,18 @@ check_version() {
installed_version=$(echo $installed_version | awk '{print $2}')
if [[ "$installed_version" != "$specific_version" ]]; then
- print_message info "${MUTED}Installed version: ${NC}$installed_version."
+ print_message info "Installed version: ${YELLOW}$installed_version."
else
- print_message info "${MUTED}Version ${NC}$specific_version${MUTED} already installed"
+ print_message info "Version ${YELLOW}$specific_version${GREEN} already installed"
exit 0
fi
fi
}
-unbuffered_sed() {
- if echo | sed -u >/dev/null 2>&1; then
- sed -nu "$@"
- elif echo | sed -l >/dev/null 2>&1; then
- sed -nl "$@"
- else
- local pad="$(printf "\n%512s" "")"
- sed -ne "s/$/\\${pad}/" "$@"
- fi
-}
-
-print_progress() {
- local bytes="$1"
- local length="$2"
- [ "$length" -gt 0 ] || return 0
-
- local width=50
- local percent=$(( bytes * 100 / length ))
- [ "$percent" -gt 100 ] && percent=100
- local on=$(( percent * width / 100 ))
- local off=$(( width - on ))
-
- local full_filled=$(printf "%.0s■" {1..50})
- local full_empty=$(printf "%.0s・" {1..50})
-
- printf "\r${ORANGE}%s%s %3d%%${NC}" "${full_filled:0:$on}" "${full_empty:0:$off}" "$percent" >&4
-}
-
-download_with_progress() {
- local url="$1"
- local output="$2"
-
- if [ -t 2 ]; then
- exec 4>&2
- else
- exec 4>/dev/null
- fi
-
- local tmp_dir=${TMPDIR:-/tmp}
- local basename="${tmp_dir}/opencode_install_$$"
- local tracefile="${basename}.trace"
-
- rm -f "$tracefile"
- mkfifo "$tracefile"
-
- # Hide cursor
- printf "\033[?25l" >&4
-
- trap "trap - RETURN; rm -f \"$tracefile\"; printf '\033[?25h' >&4; exec 4>&-" RETURN
-
- (
- curl --trace-ascii "$tracefile" -s -L -o "$output" "$url"
- ) &
- local curl_pid=$!
-
- unbuffered_sed \
- -e 'y/ACDEGHLNORTV/acdeghlnortv/' \
- -e '/^0000: content-length:/p' \
- -e '/^<= recv data/p' \
- "$tracefile" | \
- {
- local length=0
- local bytes=0
-
- while IFS=" " read -r -a line; do
- local tag="${line[0]} ${line[1]}"
-
- if [ "$tag" = "0000: content-length:" ]; then
- length="${line[2]}"
- length=$(echo "$length" | tr -d '\r')
- bytes=0
- elif [ "$tag" = "<= recv" ]; then
- local size="${line[3]}"
- bytes=$(( bytes + size ))
- if [ "$length" -gt 0 ]; then
- print_progress "$bytes" "$length"
- fi
- fi
- done
- }
-
- wait $curl_pid
- local ret=$?
- echo "" >&4
- return $ret
-}
-
download_and_install() {
- print_message info "\n${MUTED}Installing ${NC}opencode ${MUTED}version: ${NC}$specific_version"
+ print_message info "Downloading ${ORANGE}opencode ${GREEN}version: ${YELLOW}$specific_version ${GREEN}..."
mkdir -p opencodetmp && cd opencodetmp
-
- if ! download_with_progress "$url" "$filename"; then
- # Fallback to standard curl if custom fails for some reason
- curl -# -L -o "$filename" "$url"
- fi
-
+ curl -# -L -o "$filename" "$url"
unzip -q "$filename"
mv opencode "$INSTALL_DIR"
chmod 755 "${INSTALL_DIR}/opencode"
@@ -208,7 +117,7 @@ add_to_path() {
elif [[ -w $config_file ]]; then
echo -e "\n# opencode" >> "$config_file"
echo "$command" >> "$config_file"
- print_message info "${MUTED}Successfully added ${NC}opencode ${MUTED}to \$PATH in ${NC}$config_file"
+ print_message info "Successfully added ${ORANGE}opencode ${GREEN}to \$PATH in $config_file"
else
print_message warning "Manually add the directory to $config_file (or similar):"
print_message info " $command"
@@ -282,20 +191,3 @@ if [ -n "${GITHUB_ACTIONS-}" ] && [ "${GITHUB_ACTIONS}" == "true" ]; then
echo "$INSTALL_DIR" >> $GITHUB_PATH
print_message info "Added $INSTALL_DIR to \$GITHUB_PATH"
fi
-
-echo -e ""
-echo -e "${MUTED}  ${NC} ▄ "
-echo -e "${MUTED}█▀▀█ █▀▀█ █▀▀█ █▀▀▄ ${NC}█▀▀▀ █▀▀█ █▀▀█ █▀▀█"
-echo -e "${MUTED}█░░█ █░░█ █▀▀▀ █░░█ ${NC}█░░░ █░░█ █░░█ █▀▀▀"
-echo -e "${MUTED}▀▀▀▀ █▀▀▀ ▀▀▀▀ ▀ ▀ ${NC}▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀"
-echo -e ""
-echo -e ""
-echo -e "${MUTED}To get started, navigate to a project and run:${NC}"
-echo -e "opencode ${MUTED}Use free models${NC}"
-echo -e "opencode auth login ${MUTED}Add paid provider API keys${NC}"
-echo -e "opencode help ${MUTED}List commands and options${NC}"
-echo -e ""
-echo -e "${MUTED}For more information visit ${NC}https://opencode.ai/docs"
-echo -e ""
-echo -e ""
-