#!/bin/zsh # Instalação em uma linha, sem git e sem ferramentas da Apple: # zsh -c "$(curl -fsSL https://keepfree.pages.dev/instalar.sh)" # Opções do install.sh podem vir depois: ... instalar.sh)" -- --sim --meta 30 # # Baixa a versão marcada abaixo (a tag v), não o que estiver no main naquela # hora: uma mudança no main só chega a quem instala depois de virar versão. # KEEPFREE_REPO=voce/keepfree e KEEPFREE_REF=heads/main trocam a origem. # Sem acesso ao GitHub (o repositório é privado), baixa o pacote da versão no site: # KEEPFREE_PACOTE=https://.../keepfree-.tar.gz troca esse endereço. set -e VERSAO=2.0.1 REPO=${KEEPFREE_REPO:-dantaspaulo/keepfree} PACOTE=${KEEPFREE_PACOTE:-https://keepfree.pages.dev/baixar/keepfree-$VERSAO.tar.gz} REF=${KEEPFREE_REF:-tags/v$VERSAO} tmp=$(mktemp -d) trap 'rm -rf "$tmp"' EXIT print -r -- "Baixando o KeepFree $VERSAO…" # 1º o pacote do site (traz o app pronto junto); depois o GitHub, com o gh se o repositório for privado if curl -fsSL "$PACOTE" -o "$tmp/pacote.tgz" 2>/dev/null; then tar -xzf "$tmp/pacote.tgz" -C "$tmp" && rm -f "$tmp/pacote.tgz" elif curl -fsSL "https://github.com/$REPO/archive/refs/$REF.tar.gz" -o "$tmp/fonte.tgz" 2>/dev/null; then tar -xzf "$tmp/fonte.tgz" -C "$tmp" && rm -f "$tmp/fonte.tgz" elif command -v gh >/dev/null 2>&1 && gh api "repos/$REPO/tarball/${REF#*/}" > "$tmp/fonte.tgz" 2>/dev/null; then tar -xzf "$tmp/fonte.tgz" -C "$tmp" && rm -f "$tmp/fonte.tgz" else print -r -- "Não consegui baixar o KeepFree (sem internet?)." >&2; exit 1 fi dir=("$tmp"/*(N/)) (( ${#dir} == 1 )) || { print -r -- "O download não veio como esperado." >&2; exit 1; } # o pacote do site traz o app pronto (KeepFree.zip): o instalador confere o SHA-256 dele [[ -f $dir[1]/KeepFree.zip && -z ${KEEPFREE_ZIP-} ]] && export KEEPFREE_ZIP=$dir[1]/KeepFree.zip KEEPFREE_REPO=$REPO "$dir[1]/install.sh" "$@"