Files
copiado/instalar.sh
T
Lucas RayanandClaude Sonnet 5.5 d14df4e32c
Release / Plano (este commit já foi validado?) (push) Successful in 4s
CI / Trivy (dependências, segredos e configuração) (push) Successful in 9s
CI / Código e scripts (push) Successful in 14s
CI / Pacote .deb (push) Failing after 3s
Release / ci (push) Failing after 18s
Release / Publica a release (push) Skipped
ci: esteira para os runners do Gitea, changelog e instalador pelo Gitea
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-01 21:29:53 -03:00

61 lines
2.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# Instala (ou atualiza) o Copiado a partir do pacote publicado no Gitea.
# O repositório é privado: exporte GITEA_TOKEN (token com read:repository).
set -e
SERVIDOR="https://git.lucasrguerra.dev.br"
API="$SERVIDOR/api/v1/repos/lucasrguerra/copiado"
if [ -z "${GITEA_TOKEN:-}" ]; then
echo "ERRO: defina GITEA_TOKEN com um token do Gitea (read:repository)." >&2
exit 1
fi
TMP=$(mktemp -d)
trap 'rm -rf "$TMP"' EXIT
# O token vai por um arquivo de configuração do curl, não pela linha de comando,
# para não aparecer na lista de processos.
printf 'header = "Authorization: token %s"\n' "$GITEA_TOKEN" > "$TMP/curlrc"
baixar() { curl -fsSL --proto '=https' --tlsv1.2 -K "$TMP/curlrc" -o "$2" "$1"; }
echo "==> Procurando a versão mais recente..."
baixar "$API/releases/latest" "$TMP/release.json"
url_do_arquivo() {
python3 -c 'import json,sys; print(next(a["browser_download_url"] for a in json.load(open(sys.argv[1]))["assets"] if a["name"] == sys.argv[2]))' "$TMP/release.json" "$1"
}
echo "==> Baixando..."
baixar "$(url_do_arquivo copiado_all.deb)" "$TMP/copiado_all.deb"
baixar "$(url_do_arquivo SHA256SUMS)" "$TMP/SHA256SUMS"
echo "==> Conferindo a integridade do pacote..."
(cd "$TMP" && sha256sum --check --strict --quiet SHA256SUMS) || {
echo "ERRO: o pacote baixado não confere com o checksum publicado. Instalação cancelada."
exit 1
}
chmod 644 "$TMP/copiado_all.deb"
echo "==> Instalando o pacote..."
sudo apt-get update -qq || echo " (aviso: algum repositório falhou no update, seguindo mesmo assim)"
sudo apt-get install -y "$TMP/copiado_all.deb"
# remove instalações antigas feitas sem pacote (o histórico é mantido)
pkill -f "share/copiado/copiado.py" 2>/dev/null || true
pkill -f "share/clipboard-winv/clipboard-winv.py" 2>/dev/null || true
rm -f "$HOME/.local/share/copiado/copiado.py" \
"$HOME/.config/autostart/copiado.desktop" \
"$HOME/.config/autostart/clipboard-winv.desktop"
if [ -f "$HOME/.local/share/clipboard-winv/historico.json" ]; then
mkdir -p "$HOME/.local/share/copiado"
cp -a "$HOME/.local/share/clipboard-winv"/. "$HOME/.local/share/copiado"/
sed -i "s#/clipboard-winv/#/copiado/#g" "$HOME/.local/share/copiado/historico.json"
rm -rf "$HOME/.local/share/clipboard-winv"
fi
echo "==> Criando atalho Win+V e iniciando..."
pkill -f "/usr/bin/copiado" 2>/dev/null || true
sleep 0.5
copiado consertar >/dev/null
echo
echo "Pronto! Versão instalada: $(dpkg-query -W -f='${Version}' copiado). Aperte Win+V."