Eu me perguntei se já existe uma ferramenta que pode pós-processar um json asciinema para fazer com que pareça digitado manualmente.
Um colaborador do borgbackup recentemente fez novas gravações de asciinema e encontrou uma boa maneira de inserir muito texto, evitando erros de digitação:
Ele primeiro os inseriu no shell (sem o asciinema gravá-lo) e então, enquanto o asciinema estava gravando, ele apenas usou algum recurso de autocompletar/recuperação de histórico do shell, então ele só precisava digitar manualmente os primeiros caracteres e então o resto foi concluído da memória do shell.
Embora esse seja um bom hack, ele tem uma desvantagem: os primeiros caracteres parecem digitados manualmente e, em seguida, todo o resto dessa linha entra em uma explosão. Parece estranho e também em termos de velocidade, às vezes difícil de ler / seguir.
Um problema com esse pós-processamento pode ser realmente saber o que foi ecoado do teclado e qual foi a saída gerada pelo shell - existe alguma maneira de saber isso?
Eu estava me perguntando a mesma pergunta um tempo atrás. Eu escrevi alguns filtros JSON com jq para "normalizar" os atrasos na gravação. Verifique #157. Não tenho certeza se posso encontrar meus scripts agora, mas recentemente usaria o asciinema novamente, então estarei interessado nesse problema novamente.
De qualquer forma, se já houver alguma ferramenta pronta para usar, ficaria feliz em saber também.
Pode-se, de fato, construir uma ferramenta que possa diferenciar o texto ecoado do texto gerado. Seria necessário que o gravador asciinema também capturasse stdin (além de stdout) e o armazenasse no arquivo de gravação. Não o temos agora, mas não seria difícil implementá-lo (e estamos discutindo o formato asciicast v2 agora, considerando que stdin pode ser salvo opcionalmente).
@ThomasWaldmann Eu uso borg, é fantástico, ótimo trabalho! E foi legal ver a asciinema usada nos docs do borg 😍
Eu estava pensando em algo parecido onde pudéssemos definir os comandos a serem executados em um arquivo e passá-lo para o asciinema com um parâmetro como transição de tempo para gravar sem jogar o cenário manualmente
Comentários muito úteis
Eu estava pensando em algo parecido onde pudéssemos definir os comandos a serem executados em um arquivo e passá-lo para o asciinema com um parâmetro como transição de tempo para gravar sem jogar o cenário manualmente