Ir para o conteúdo
Promovaweb

Crie um plugin com ação e evento

Revisado em

Antes de começar

Use Node.js para consultar os workspaces e registrar a resposta quando uma ação ou evento executar o plugin.

  • Node.js disponível no PATH.
  • Herdr 0.9.5 no Linux.

Um plugin do Herdr é um diretório com manifesto e executáveis. Neste exemplo, uma ação consulta os workspaces e grava um registro no diretório de estado fornecido pelo Herdr. O mesmo script responde ao evento de criação de workspace.

Crie o manifesto

Crie uma pasta para o exemplo e escreva o arquivo herdr-plugin.toml:

id = "promovaweb.workspace-log"
name = "Registro de workspaces"
version = "0.1.0"
min_herdr_version = "0.9.5"
platforms = ["linux"]
[[actions]]
id = "registrar"
title = "Registrar workspaces"
command = ["node", "index.mjs"]
[[events]]
on = "workspace.created"
command = ["node", "index.mjs"]

Consulte a sessão correta

Escreva este código no arquivo index.mjs na mesma pasta. Ele usa o binário e o socket recebidos do Herdr, inclusive quando a ação ocorre em uma sessão nomeada.

import { execFileSync } from 'node:child_process'
import { appendFileSync, mkdirSync } from 'node:fs'
import { join } from 'node:path'
const binary = process.env.HERDR_BIN_PATH
const directory = process.env.HERDR_PLUGIN_STATE_DIR
if (!binary || !directory) throw new Error('Execute pelo Herdr.')
const output = execFileSync(binary, ['workspace', 'list'], {
encoding: 'utf8', timeout: 5000
})
mkdirSync(directory, { recursive: true })
appendFileSync(join(directory, 'workspaces.jsonl'), JSON.stringify({
date: new Date().toISOString(),
event: process.env.HERDR_PLUGIN_EVENT ?? 'action',
response: JSON.parse(output)
}) + '\n')

O registro inclui nomes e identificadores de workspaces. Guarde-o como informação do seu ambiente. O exemplo é didático e acrescenta uma linha por evento, sem rotação automática do arquivo.

Vincule e execute

Dentro da pasta do plugin, execute:

Terminal
herdr --session tutorial plugin link "$PWD"
herdr --session tutorial plugin action invoke promovaweb.workspace-log.registrar
herdr --session tutorial workspace create --cwd "$PWD" --label Evento
herdr --session tutorial plugin log list --plugin promovaweb.workspace-log

A chamada da ação retorna antes de o processo terminar. Consulte os logs até verificar succeeded e exit_code: 0. O teste local confirmou esse resultado para a ação e para o evento workspace.created.

Remova o vínculo

Terminal
herdr plugin unlink promovaweb.workspace-log

O comando remove o registro do plugin e preserva os arquivos de desenvolvimento. Plugins vinculados ficam disponíveis para as sessões do mesmo usuário. O teste desta página usou diretórios XDG temporários para manter a instalação pessoal separada.

Confira o resultado

Confira a saída descrita no procedimento.

Fontes e conferência

Ação, evento workspace.created, consulta de logs e remoção do vínculo executados com sucesso. Herdr 0.9.5, Linux x86_64, em 25 de outubro de 2026.