Files
easyzsh/patch.sh
T
Frank Qing 76395923ce fix(install): make setup failures explicit and atomic
Installer pipelines masked dependency and download failures, causing
false success messages and unsafe config replacement.

Atomic updates and current upstream installers keep failures visible.
2026-07-15 00:16:33 +08:00

33 lines
854 B
Bash

#!/bin/bash
set -euo pipefail
BASE_URL="https://git.miomio.moe/mio/easyzsh/raw/branch/master/zshrc"
ZSH_CONFIGS_DIR="$HOME/.config/zshrc"
mkdir -p "$ZSH_CONFIGS_DIR"
if [ "$#" -gt 0 ]; then
for arg in "$@"; do
if [[ -z "$arg" || "$arg" == *[![:alnum:]_-]* ]]; then
echo "Invalid config name: $arg" >&2
exit 1
fi
destination="${ZSH_CONFIGS_DIR}/${arg}.zsh"
temporary=$(mktemp "$HOME/.config/.easyzsh-${arg}.XXXXXX")
trap 'rm -f "$temporary"' EXIT
if ! curl -fsSL "${BASE_URL}/${arg}.zsh" -o "$temporary"; then
echo "Failed to download ${arg}.zsh from ${BASE_URL}"
exit 1
fi
mv "$temporary" "$destination"
trap - EXIT
done
else
echo "No arguments provided. Please specify the config files to download."
exit 1
fi