Mostrar HN: Shittp – Dotfiles voláteis sobre SSH
Leve seus dotfiles para uma máquina remota via SSH sem bagunça. Dependências necessárias: shell POSIX, ssh, tar, base64, mktemp curl -fsSL https://raw.githubusercontent.com/FOBshippingpoint/shittp/refs/heads/main/install.sh –output install.sh chmod +x install.sh ./install.sh Edite seus dotfiles em ~/.config/shittp cd ~/.config/shittp echo ‘aloha() { echo olá; }’ >> .profile $EDITOR .vimrc $EDITOR .tmux.conf Faça login no host remoto com SSH: shittp john@other.machine john$ aloha # saída: olá john$ vim # alias igual a “vim -u $SHITTP_HOME/.vimrc” john$ tmux # alias igual a “tmux -L shittp -f $SHITTP_HOME/.tmux.conf” Ou contêiner Docker: docker run -it alpine /bin/sh -c “$(shittp print)” $ aloha # output: hello Pack: crie um tarball de seus dotfiles e pipes para string base64. Transporte: passando a string base64 e o script de configuração como um comando remoto SSH. Descompacte: no controle remoto, decodifica a string base64 e extrai para o diretório temporário. Init: script de configuração de fontes e inicia um shell interativo. Limpeza: remova o diretório temporário depois de desconectar. A ideia original vem do kyrat, que usa gzip/gunzip e bash. shittp usa tar e shell POSIX. shittp (opções)… (comando) (ssh_options)… destino (– ssh_command) Opção Descrição Padrão -h, –help Mostra mensagem de ajuda. –config-dir DIR Especifique o diretório de configuração. ~/.config/shittp –client CLIENT Especifique o comando do cliente SSH (por exemplo, dbclient). ssh -v, –version Imprime a versão shittp. Comando Descrição onde Mostra o caminho do diretório de configuração padrão. print Produza a string de comando em vez de executar o SSH. Útil para carregar dotfiles em ambientes como Docker. Login SSH básico Passe as opções SSH como está shittp -oStrictHostKeyChecking=no john@example.com Execute a função remota shittp john@example.com — foo bar shittp -oRemoteCommand=’foo bar’ john@example.com Integração com Docker docker run -it alpine /bin/sh -c “$(shittp print)” Cliente Dropbear shittp –client dbclient john@example.com Variável Escopo Descrição Padrão SHITTP_CONFIG_DIR Diretório local onde seus dotfiles residem. ~/.config/shittp SHITTP_SSH_CLIENT Caminho do cliente SSH local (substituído por –client). ssh SHITTP_SHELL Caminho do Shell local/remoto para usar no controle remoto. Shell de login remoto SHITTP_HOME Diretório local/remoto para extrair dotfiles tarball. Diretório temporário criado SHITTP Caminho remoto para shittp_init.sh. Fonte isto se (shittp) Inited não aparecer. SHITTP_INITED Remoto Defina como 1 se o shittp foi inicializado com sucesso. Cofig grande pode falhar ao carregar devido à restrição de comprimento máximo de argumento do sistema operacional (ARG_MAX). Sabe-se que o arquivo 100K irá desencadear o erro no Alpine Linux. Comando como tar czf – | ssh host tar xzf – deve funcionar, no entanto, requer conexão SSH de 2 estágios, o que significa que o usuário precisa digitar a senha duas vezes. Dependências necessárias: shellcheck, shellspec, docker Especifique um comando. As opções são: help Mostrar esta ajuda lint Executar shellcheck unit Executar teste de unidade com integração shellspec Executar script de teste de integração webdev Iniciar servidor web para construção da página inicial Executar todas as verificações (lint, unidade, integração) e construir tarball clean Remover shittp tarball da etapa de construção
Publicado: 2025-12-21 12:33:00
fonte: github.com








