Asciinema: Поддержка винды?

Созданный на 3 мар. 2016  ·  31Комментарии  ·  Источник: asciinema/asciinema

Консоль Windows — это (причудливый) терминал ANSI, связанный с API консоли Windows. Предполагая, что записывающее устройство может быть создано, существующий формат файла asciicast должен быть способен представлять почти все, что может делать консольное приложение Windows. Полученная запись должна быть такой же воспроизводимой, как и любая другая.

Сложный трюк — это запись. Кто-нибудь думал или пытался создать такой рекордер для консоли Windows?

Возможен ли перенос asciinema на Windows?

feature request packaging

Самый полезный комментарий

Для всех, кто интересуется записью в Windows, у @mattn есть экспериментальная ветка здесь: https://github.com/mattn/asciinema/tree/windows .

Все 31 Комментарий

asciinema записывает необработанный вывод stdout дочернего процесса (по умолчанию оболочка). Он никак не «захватывает» содержимое экрана. Он фиксирует то, что печатается (включая все escape-последовательности и управляющие последовательности), и делает это с помощью псевдотерминала (pty).

До сих пор я не нашел ни одного терминала Windows, поддерживающего pty, но недавно я наткнулся на http://babun.github.io . На странице написано: Mintty is the console used in babun.

На странице Mintty (https://mintty.github.io) написано: Similarly to other Cygwin/MSYS terminals based on pseudo terminal ("pty") devices (...) , однако есть длинная ветка обсуждения связанной проблемы: https://github.com/mintty/mintty/issues/56 .

Если кто-то найдет способ использовать pty в Windows (или что-то, имитирующее pty, но предоставляющее нам необработанный поток stdout), тогда мы можем обратиться к asciinema-on-windows.

Вас интересует встроенная поддержка cmd?

https://asciinema.org/a/0nsiofsbhypumh6vy5jx6wuog

Но пока экспериментальный.

@mattn эй ! Конечно, мне любопытно услышать, как это было достигнуто.

Для всех, кто интересуется записью в Windows, у @mattn есть экспериментальная ветка здесь: https://github.com/mattn/asciinema/tree/windows .

Привет! Возможно, этот проект полезен? https://github.com/adoxa/ansicon

Ребята, можно ли использовать этот инструмент в git bash для Windows?
Т.е. в МинГВ . Или в Бабун...

Я только что установил форк с https://github.com/mattn/asciinema/tree/windows , но он работает cmd.exe .

@andkirby Я слышал, что это работает в bash под Windows, но сам не пробовал.

Слухи... :) Спасибо.)

@sickill Это было закрыто, потому что оно объединено или потому что вы не планируете его поддерживать?

@masaeedu Спасибо за интерес.

Я не планирую поддерживать Windows, потому что:

  • большинство pty-подобных решений для Windows — это хаки
  • Я не использую Windows и как основной разработчик asciinema не хочу ее поддерживать.

На данный момент я считаю, что это того не стоит.

asciinema устанавливается и отлично работает под Win10 (WSL): https://asciinema.org/a/123255

Терминалы Windows для записи действительно нуждаются в хаках, насколько я знаю, они все еще поддерживают запись в буфер консоли напрямую с инструкциями MOV. @миникса

На данный момент я считаю, что это того не стоит.

Думаю, оно того стоит. Я действительно хотел бы иметь карман, чтобы сделать несколько видео в Git Bash для Windows.

Мне просто есть что показать. :)

С интересом слежу за веткой по этому вопросу. Я надеюсь, что в будущем может появиться решение для поддержки использования Asciinema в CMD Windows, PowerShell и Git Bash (без WSL).

А пока я добавляю несколько ссылок на найденные мной ресурсы, которые могут помочь в этом направлении:

винпти

winpty — это программный пакет Windows, предоставляющий интерфейс, аналогичный pty-master Unix, для взаимодействия с консольными программами Windows. Пакет состоит из библиотеки (libwinpty) и инструмента для Cygwin и MSYS для запуска консольных программ Windows в pty Cygwin/MSYS.

ПРИМЕЧАНИЕ : winpty используется библиотекой node-pty ниже.

узел-pty

Привязки forkpty(3) для node.js. Это позволяет вам разветвлять процессы с файловыми дескрипторами псевдотерминала. Он возвращает терминальный объект, который разрешает чтение и запись.

Это полезно для:

  • Написание эмулятора терминала (например, через xterm.js).
  • Заставьте определенные программы думать, что вы терминал, например, когда вам нужна программа для отправки вам управляющих последовательностей.

node-pty поддерживает Linux, macOS и Windows. Поддержка Windows возможна при использовании библиотеки winpty .

@tajmone спасибо за краткое изложение возможных вариантов. Я не думаю, что мы сможем использовать node-pty, поскольку asciinema написана на Python.

Я не очень хорошо знаком с WSL - это часть Win10 или это нужно устанавливать отдельно?

Я не очень хорошо знаком с WSL - это часть Win10 или это нужно устанавливать отдельно?

Я тоже ... но из того, что я читал, WSL можно дополнительно установить в Win 10, и тогда он установит части из реального дистрибутива Ubuntu. Поскольку у меня уже есть Git Bash для Windows, который предлагает мне все, что мне нужно прямо сейчас, я бы предпочел не устанавливать его, пока не узнаю о нем немного больше — WSL, безусловно, предлагает больше инструментов, чем просто Git Bash, и имеет более широкий охват; но я думаю, что это также занимает больше места.

@tajmone @andkirby Немного поздно, но вы можете установить разные оболочки с помощью вилки Мэтта, используя COMSPEC=cmd , COMSPEC=bash или COMSPEC=powershell . ИМХО, COMSPEC была бы правильной переменной Windows для установки такого рода функций. Примеры выходных данных ниже:

Команда:
https://asciinema.org/a/r0UNULw8K5r0HV35kTLOatAbX

WSL Bash (запускается из стандартного терминала):
https://asciinema.org/a/XtLu8rh65uFekim1VbWamNcmh

PowerShell:
https://asciinema.org/a/HttJNKCwM9Tb1NlVP5PFy6Ftx

Лично я думаю, что это работает очень хорошо...

Большое спасибо @fquinner ! Я читал здесь и там о вилке Мэтта, но не знал, что она достигла такого рабочего статуса. Приведенные вами ссылки прояснили ситуацию.

Я обязательно посмотрю!

Итак, asciinema не работала в Windows cmd, верно?

Еще один вариант — открыть проблему в https://github.com/Microsoft/console , чтобы добавить совместимый с pty API в cmd. Команда разработчиков консоли Microsoft Windows, такая как @bitcrazed , находится на Github, чтобы выслушать вас.

Что сказал @joelhandwell :) Спасибо за предложение этого Джо, и с нетерпением жду ответа от вас в репозитории выше;)

giphy

@bitcrazed Я пошел дальше и попытался создать проблему, но @be5invis уже отправил https://github.com/Microsoft/console/issues/57 ! Мы надеемся, что люди в этом выпуске уделят этой проблеме много 👍 и привлекут больше внимания Microsoft.

Если вам не нужны обходные пути или хаки, для этого можно использовать go-winpty.

https://github.com/iamacarpet/go-winpty

https://asciinema.org/a/r0UNULw8K5r0HV35kTLOatAbX

https://asciinema.org/a/HttJNKCwM9Tb1NlVP5PFy6Ftx

@fquinner , простите, не могли бы вы написать подробно, как вы записываете эти видео?

Я пытаюсь установить и запустить форк @mattn в Windows, но не понимаю, как исправить ошибку No module named 'termios' .

Спасибо.

Попробуйте построить, как показано ниже:

mkdir \path\to\your\gopath\src\github.com\mattn
cd \path\to\your\gopath\src\github.com\mattn
git clone https://github.com/mattn/asciinema
cd asciinema
git checkout windows
go build

@маттн ,

D:\>go version
go version go1.10 windows/amd64

D:\>go get -d github.com/mattn/asciinema
package github.com/asciinema/asciinema/Godeps/_workspace/src/github.com/docopt/docopt-go: cannot find package "github.com/asciinema/asciinema/Godeps/_workspace/src/github.com/docopt/docopt-go" in any of:
        C:\tools\go\src\github.com\asciinema\asciinema\Godeps\_workspace\src\github.com\docopt\docopt-go (from $GOROOT)
        C:\Users\SashaChernykh\go\src\github.com\asciinema\asciinema\Godeps\_workspace\src\github.com\docopt\docopt-go (from $GOPATH)
package github.com/asciinema/asciinema/api: cannot find package "github.com/asciinema/asciinema/api" in any of:
        C:\tools\go\src\github.com\asciinema\asciinema\api (from $GOROOT)
        C:\Users\SashaChernykh\go\src\github.com\asciinema\asciinema\api (from $GOPATH)
package github.com/asciinema/asciinema/commands: cannot find package "github.com/asciinema/asciinema/commands" in any of:
        C:\tools\go\src\github.com\asciinema\asciinema\commands (from $GOROOT)
        C:\Users\SashaChernykh\go\src\github.com\asciinema\asciinema\commands (from $GOPATH)
package github.com/asciinema/asciinema/util: cannot find package "github.com/asciinema/asciinema/util" in any of:
        C:\tools\go\src\github.com\asciinema\asciinema\util (from $GOROOT)
        C:\Users\SashaChernykh\go\src\github.com\asciinema\asciinema\util (from $GOPATH)

Спасибо.

Извините, это была моя ошибка. Пожалуйста, попробуйте еще раз, как указано выше.

@маттн ,

  1. Можете ли вы сделать установку вашей версии более простой? Например, pip install asciinemawindows .
  2. Я все еще не могу установить вашу версию asciinema (да, я установил gopath ):
D:\go\src\github.com\mattn\asciinema>go build
main.go:11:2: cannot find package "github.com/asciinema/asciinema/Godeps/_workspace/src/github.com/docopt/docopt-go" in any of:
        C:\tools\go\src\github.com\asciinema\asciinema\Godeps\_workspace\src\github.com\docopt\docopt-go (from $GOROOT)
        D:\go\src\github.com\asciinema\asciinema\Godeps\_workspace\src\github.com\docopt\docopt-go (from $GOPATH)
main.go:12:2: cannot find package "github.com/asciinema/asciinema/api" in any of:
        C:\tools\go\src\github.com\asciinema\asciinema\api (from $GOROOT)
        D:\go\src\github.com\asciinema\asciinema\api (from $GOPATH)
main.go:13:2: cannot find package "github.com/asciinema/asciinema/commands" in any of:
        C:\tools\go\src\github.com\asciinema\asciinema\commands (from $GOROOT)
        D:\go\src\github.com\asciinema\asciinema\commands (from $GOPATH)
main.go:14:2: cannot find package "github.com/asciinema/asciinema/util" in any of:
        C:\tools\go\src\github.com\asciinema\asciinema\util (from $GOROOT)
        D:\go\src\github.com\asciinema\asciinema\util (from $GOPATH)
main.go:15:2: cannot find package "github.com/mattn/go-colorable" in any of:
        C:\tools\go\src\github.com\mattn\go-colorable (from $GOROOT)
        D:\go\src\github.com\mattn\go-colorable (from $GOPATH)

Спасибо.

Пожалуйста, переместите обсуждение проблем установки форка mattn в репозиторий mattn. Спасибо! ;)

Если вы хотите обсудить поддержку Windows в целом, используйте дискуссионный форум asciinema: https://discourse.asciinema.org/

Была ли эта страница полезной?
0 / 5 - 0 рейтинги