sinelaw/fresh · error
[ERROR] \n
Error message
[ERROR] %s\n
What it means
log_error in scripts/install.sh prints a red '[ERROR] <message>' line to stderr and then exits the installer with status 1. It is reserved for fatal top-level installer paths, since 'exit' inside command substitution would only kill a subshell — helpers capturing output return a status instead.
Solutions
- Read the [ERROR] line on stderr — it names the fatal check that failed.
- Install missing prerequisites (curl or wget) and re-run the installer.
- Confirm your OS/architecture is a supported release target (uname -m).
- Fix permissions or choose a writable install prefix, or run with appropriate privileges.
Example fix
// minimal container missing curl // before: ./install.sh -> [ERROR] curl is required // after apt-get update && apt-get install -y curl && ./install.sh
Defensive patterns
Strategy: validation
Validate before calling
for cmd in curl wget uname tar; do command -v "$cmd" >/dev/null 2>&1 || { echo "missing: $cmd"; exit 1; }; done
case "$(uname -m)" in x86_64|aarch64) ;; *) echo "unsupported arch"; exit 1;; esac Try / catch
if ! ./install.sh; then echo "installer exited $? — see [ERROR] line above"; fi
Prevention
- Read the [ERROR] line on stderr; log_error always names the failed check before exiting.
- Pre-install curl/wget in minimal images before running the installer.
- Run installers in CI on the same base image you deploy.
- Check disk space and write permissions on the target prefix.
When it happens
Trigger: Any fatal check in install.sh calling log_error: unsupported OS/architecture, missing required commands (curl/wget/uname), failed download of the release binary, or inability to write to the install prefix.
Common situations: Running the installer on an unsupported platform (e.g. unknown architecture or non-glibc Linux); no network access to the release host; curl/wget absent on a minimal container; insufficient permissions in the target install directory.
Related errors
AI-assisted analysis of sinelaw/fresh@67894ca546 (2026-09-13).
Data as JSON: /api/errors/100eb55053a86c59.
Report an issue: GitHub.
Appendix: source
Thrown at scripts/install.sh:94
# END CONFIGURATION
# ==============================================================================
# --- Colors and Helpers ---
RED='\033[0;31m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Helpers below return values by echoing them, so a diagnostic left on stdout
# would be captured as if it were the value.
log_info() { printf "${BLUE}[INFO]${NC} %s\n" "$1" >&2; }
log_success() { printf "${GREEN}[SUCCESS]${NC} %s\n" "$1" >&2; }
log_warn() { printf "${YELLOW}[WARN]${NC} %s\n" "$1" >&2; }
# `exit` inside $(...) ends only that subshell, so log_error is for top-level
# paths; helpers whose output is captured return a status instead.
log_error() { printf "${RED}[ERROR]${NC} %s\n" "$1" >&2; exit 1; }
check_cmd() { command -v "$1" >/dev/null 2>&1; }
usage() {
cat <<EOF
Fresh Editor installer
Usage: install.sh [--method=METHOD] [--no-desktop-integration]
Methods:
auto (default) universal build on Linux, Homebrew on macOS, Nix on NixOS
tarball universal static build under ~/.local — self-updating, no root
deb Debian/Ubuntu .deb from the latest release (needs root)
rpm Fedora/RHEL/openSUSE .rpm from the latest release (needs root)
aur Arch Linux, via the AUR
brew Homebrew
nix Nix profile
cargo cargo install / cargo binstallView on GitHub (pinned to 67894ca546)