Package 'trama.launcher'

Title: Instalador e Launcher do trama
Description: Motor de instalação e atualização do trama: lê o manifesto de release, calcula o status da instalação local, instala releases numa biblioteca isolada (só pacotes binários) e serve a tela de início em Shiny, de onde o editor é aberto.
Authors: Pedro Mambelli Fernandes [aut, cre] (ORCID: <https://orcid.org/0009-0001-1695-279X>), João Paulo Assis Bonifácio [aut] (ORCID: <https://orcid.org/0009-0009-2335-8391>)
Maintainer: Pedro Mambelli Fernandes <[email protected]>
License: MIT + file LICENSE
Version: 0.2.4
Built: 2026-10-20 15:21:05 UTC
Source: https://github.com/uaipedro/trama

Help Index


Abre o launcher do trama

Description

Ponto de entrada chamado pelo atalho instalado (Trama-Setup.exe no Windows, install.sh no Linux): coloca a biblioteca da release atual na frente do .libPaths() (se já houver uma) e sobe a tela de início do launcher. Se ainda não houver nenhuma release instalada, é a tela de início quem dispara a primeira instalação (tl_server(), em R/app.R) — depois dela estar no ar, não antes: instalar antes do runApp() rodava tl_manifest_read() sem UI nenhuma para mostrar o progresso ou um erro (e lançava erro de verdade se estivesse offline, derrubando abrir() inteiro antes do pesquisador ver qualquer coisa).

Usage

abrir(
  porta = 8725L,
  ja_rodando = .tl_launcher_rodando,
  abrir_janela = tl_open_window
)

Arguments

porta

Porta onde a tela de início sobe; se ocupada, usa a primeira livre a partir daqui.

ja_rodando

Função que confere se já há um launcher respondendo em porta (padrão .tl_launcher_rodando()) — parâmetro só para os testes poderem mockar sem abrir um socket de verdade.

abrir_janela

Como abrir a janela quando o launcher já está de pé. Por padrão tl_open_window().

Value

Não retorna em uso normal — shiny::runApp() bloqueia a sessão enquanto a tela de início está aberta (a menos que já houvesse um launcher de pé, caso em que só abre a janela e retorna).


Instala uma coleção na release atual

Description

Instala uma coleção na lib da release atual e a acrescenta ao estado. Recusa qualquer coleção que não conste no manifesto — o manifesto é a única fonte de verdade sobre o que é instalável nesta release.

Usage

tl_collection_add(m, nome, progresso = message)

Arguments

m

Manifesto de release.

nome

Nome da coleção a instalar.

progresso

Função chamada com uma mensagem de progresso.

Value

(Invisível) o novo estado gravado.


Remove uma coleção da release atual

Description

Remove uma coleção da lib da release atual e a tira do estado.

Usage

tl_collection_remove(nome, progresso = message)

Arguments

nome

Nome da coleção a remover.

progresso

Função chamada com uma mensagem de progresso.

Value

(Invisível) o novo estado gravado.


Instala uma release numa biblioteca isolada

Description

Instala a release descrita em m (mais as colecoes pedidas) numa biblioteca isolada tl_lib_dir(m$trama), só com pacotes binários.

Usage

tl_install_release(m, colecoes = tl_state_read()$colecoes, progresso = message)

Arguments

m

Manifesto de release (tl_manifest_read()/tl_manifest_fetch()).

colecoes

Nomes de coleções a instalar junto com o núcleo.

progresso

Função chamada com uma mensagem a cada pacote (message() por padrão).

Details

Só grava o estado se TODOS os pacotes pedidos existirem na lib ao final; se algum faltar, apaga a lib parcial e lança erro sem tocar no estado — quem já tinha uma release funcionando continua com ela.

Value

(Invisível) o novo estado gravado.


Lê e valida o manifesto de release

Description

Lê e valida o manifesto de src (URL ou caminho local). Lança erro com classe tl_error_manifesto e mensagem em português se faltar alguma chave obrigatória, se cran_snapshot não for uma data ISO (AAAA-MM-DD) ou se r não estiver no formato x.y.z.

Usage

tl_manifest_read(src = tl_manifest_url())

Arguments

src

URL ou caminho local do manifesto (release.json).

Value

Lista com o manifesto validado.


Volta para a release anterior

Description

Volta a release atual para a anterior mais recente (a lib da release atual continua no disco, só não é mais a apontada pelo estado — assim dá para avançar de novo sem reinstalar).

Usage

tl_rollback()

Value

(Invisível) o novo estado gravado.


Status da instalação local

Description

O que a tela de início lê para desenhar versões, botão de atualizar, coleções e o aviso de troca de linha do R. Nunca lança erro — mesmo sem instalação e sem rede, devolve uma resposta coerente (a página tem que conseguir se desenhar nesse estado).

Usage

tl_status(m = tl_manifest_fetch(), s = tl_state_read())

Arguments

m

Manifesto (de tl_manifest_fetch()) ou NULL se offline.

s

Estado local (de tl_state_read()).

Value

Lista com release_instalada, release_disponivel, atualizar, r_instalado, r_exigido, troca_de_r, pacotes (data.frame nome/instalada/disponível) e colecoes (data.frame nome/titulo/instalada/disponivel/requires).