Ir para o conteúdo
DeskSSH

Tipo de plugin · .json

Adaptadores — ensine um novo OS ao DeskSSH

Um adaptador mapeia o catálogo de capacidades do DeskSSH aos comandos de uma família de sistema operacional específica. É como a área de trabalho chega além dos OS que já conhece.

Um adaptador é um único manifesto JSON — sem código no host. Por ser dado puro, cada capacidade é um template de comando declarativo mais uma regra para parsear a saída em registros. Nunca se executa nada arbitrário no remoto.

O campo osSupport lista os IDs de os-release que o adaptador suporta (por exemplo fedora, rhel, centos). Ao conectar, o DeskSSH escolhe o adaptador cujo osSupport combina com o host e executa seus templates para cada capacidade que o usuário aciona.

Coloque o arquivo em ~/.deskssh/plugins/adapters/, ou importe por Configurações → Importar. Essa é toda a distribuição: um único arquivo revisável.

adapters/fedora.json json
{
  "schema": 1,
  "kind": "adapter",
  "id": "fedora",
  "name": "Fedora / RHEL",
  "version": "0.1.0",
  "author": { "name": "you", "github": "you" },
  "license": "AGPL-3.0-or-later",
  "contract": "^0.1.0",
  "osSupport": ["fedora", "rhel", "centos"],
  "capabilities": {
    "listServices": {
      "template": "systemctl list-units --type=service --all --plain --no-pager",
      "normalize": {
        "kind": "records",
        "columnDelimiter": "\\s+",
        "columns": ["unit", "load", "active", "sub", "description"]
      }
    }
  }
}
osSupport
IDs / famílias de os-release que o adaptador suporta, ex. ["fedora","rhel"].
contract
Faixa do Contract (catálogo de capacidades) que ele implementa, ex. ^0.1.0.
capabilities
Um mapa capacidade → { template, normalize }. Só declarativo — nunca uma função.
normalize
Uma spec de records: columnDelimiter + columns que transformam a saída em linhas.

É assim que o DeskSSH cresce além do Debian

O core traz hoje um adaptador da família Debian, mas o modelo é aberto: escreva um adaptador para a sua distro e o DeskSSH a fala — sem mexer no core.