Asciinema: Prise en charge de Windows ?

Créé le 3 mars 2016  ·  31Commentaires  ·  Source: asciinema/asciinema

Une console Windows est un terminal ANSI (excentrique), lié derrière l'API de la console Windows. En supposant qu'un enregistreur puisse être créé, le format de fichier asciicast existant devrait être capable de représenter presque tout ce qu'une application de console Windows peut faire. L'enregistrement résultant doit être aussi jouable que n'importe quel autre.

L'astuce, c'est l'enregistrement. Quelqu'un a-t-il réfléchi ou fait des efforts pour créer un tel enregistreur pour une console Windows ?

Un port d'asciinema vers Windows serait-il possible ?

feature request packaging

Commentaire le plus utile

Pour toute personne intéressée par l'enregistrement sur Windows, @mattn a une branche expérimentale ici : https://github.com/mattn/asciinema/tree/windows

Tous les 31 commentaires

asciinema enregistre la sortie stdout brute d'un processus enfant (shell par défaut). Il ne "capture" en aucune façon le contenu de l'écran. Il capture ce qui est imprimé (y compris toutes les séquences d'échappement/contrôle) et il le fait en utilisant un pseudo-terminal (pty).

Jusqu'à présent, je n'ai trouvé aucun terminal Windows prenant en charge pty, mais récemment, je suis tombé sur http://babun.github.io . La page dit : Mintty is the console used in babun.

La page Mintty (https://mintty.github.io) dit : Similarly to other Cygwin/MSYS terminals based on pseudo terminal ("pty") devices (...) , mais il y a un long fil de discussion sur le problème connexe : https://github.com/mintty/mintty/issues/56

Si quelqu'un trouve un moyen d'utiliser pty sous Windows (ou quelque chose qui simule pty mais nous donne un flux stdout brut), nous pourrions alors approcher asciinema-on-windows.

Êtes-vous intéressé par le support cmd natif ?

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

Mais actuellement expérimental.

@mattn whoa ! Bien sûr, je suis curieux de savoir comment cela a été réalisé.

Pour toute personne intéressée par l'enregistrement sur Windows, @mattn a une branche expérimentale ici : https://github.com/mattn/asciinema/tree/windows

Salut! Peut-être que ce projet est utile ? https://github.com/adoxa/ansicon

Les gars, puis-je utiliser cet outil dans git bash pour Windows ?
C'est-à-dire dans MinGW . Ou à Babun...

Je viens d'installer fork à partir de https://github.com/mattn/asciinema/tree/windows mais il s'exécute cmd.exe .

@andkirby J'ai entendu dire que cela fonctionnait dans bash sous Windows mais je n'ai pas essayé moi-même.

Rumeurs... :) Merci.)

@sickill Cela a-t-il été fermé parce qu'il a fusionné ou parce que vous ne prévoyez pas de le prendre en charge ?

@masaeedu Merci pour votre intérêt.

Je ne prévois pas de prendre en charge Windows car :

  • la plupart des solutions de type pty pour Windows sont des hacks
  • Je n'utilise pas Windows et en tant que développeur asciinema principal, je ne veux pas le maintenir

Pour le moment je pense que ça ne vaut pas le coup.

asciinema s'installe et fonctionne parfaitement sous Win10 (WSL) : https://asciinema.org/a/123255

L'enregistrement des terminaux Windows a vraiment besoin de hacks, autant que je sache, ils prennent toujours en charge l'écriture dans le tampon de la console directement avec les instructions MOV. @miniksa

Pour le moment je pense que ça ne vaut pas le coup.

Je suppose que ça vaut le coup. J'aimerais vraiment l'avoir dans la poche pour faire de la vidéo dans Git Bash pour Windows.

J'ai juste beaucoup de choses à montrer. :)

Je suis avec intérêt le fil de discussion sur ce problème. J'espère qu'à l'avenir, une solution pourra être trouvée pour prendre en charge l'utilisation d'Asciinema sur Windows CMD, PowerShell et Git Bash (sans WSL).

En attendant, je laisse tomber quelques liens vers des ressources que j'ai trouvées qui pourraient aider dans cette direction :

Winpty

winpty est un progiciel Windows fournissant une interface similaire à un pty-master Unix pour communiquer avec les programmes de la console Windows. Le package se compose d'une bibliothèque (libwinpty) et d'un outil pour Cygwin et MSYS pour exécuter des programmes de console Windows dans un pty Cygwin/MSYS.

NOTE : winpty est utilisé par la bibliothèque node-pty ci-dessous.

nœud-pty

Liaisons forkpty(3) pour node.js. Cela vous permet de forker des processus avec des descripteurs de fichiers pseudo-terminaux. Il renvoie un objet terminal qui autorise les lectures et les écritures.

Ceci est utile pour :

  • Écrire un émulateur de terminal (par exemple via xterm.js).
  • Faire croire à certains programmes que vous êtes un terminal, par exemple lorsque vous avez besoin d'un programme pour vous envoyer des séquences de contrôle.

node-pty prend en charge Linux, macOS et Windows. La prise en charge de Windows est possible en utilisant la bibliothèque winpty .

@tajmone merci pour le résumé des options possibles. Je ne pense pas que nous pourrons utiliser node-pty, car asciinema est écrit en Python.

Je ne connais pas très bien WSL - fait-il partie de Win10 ou doit-il être installé séparément?

Je ne connais pas très bien WSL - fait-il partie de Win10 ou doit-il être installé séparément?

Moi non plus ... mais d'après ce que j'ai lu, WSL peut être installé en option dans Win 10, et il installera ensuite des pièces à partir d'une distribution Ubuntu réelle. Comme j'ai déjà Git Bash pour Windows, qui m'offre tout ce dont j'ai besoin en ce moment, je préfère ne pas l'installer avant d'en savoir un peu plus à son sujet — WSL offre sûrement plus d'outils que Git Bash, et a une portée plus large ; mais je suppose que cela prend aussi plus de place.

@tajmone @andkirby Un peu tard, mais vous pouvez définir différents shells avec la fourche de Matt en utilisant COMSPEC=cmd , COMSPEC=bash ou COMSPEC=powershell . À mon humble avis, COMSPEC serait la bonne variable Windows à définir pour ce type de fonction. Exemples de sorties ci-dessous :

Commande :
https://asciinema.org/a/r0UNULw8K5r0HV35kTLOatAbX

WSL Bash (lancé depuis un terminal standard) :
https://asciinema.org/a/XtLu8rh65uFekim1VbWamNcmh

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

Personnellement, je trouve que ça marche très bien...

Merci beaucoup @fquinner ! J'ai lu ici et là sur la fourche de Matt, mais je ne savais pas qu'elle avait atteint un statut aussi opérationnel. Les liens que vous avez fournis ont clarifié la situation.

Je vais certainement me renseigner !

Donc asciinema, n'a pas fonctionné sur Windows cmd, n'est-ce pas?

Une autre option consiste à ouvrir un problème dans https://github.com/Microsoft/console pour ajouter une API compatible pty à cmd. L'équipe d'ingénieurs Microsoft Windows Console telle que @bitcrazed est sur Github pour vous écouter.

Ce que @joelhandwell a dit :) Merci d'avoir suggéré ce Joe, et j'ai hâte d'avoir de vos nouvelles sur le dépôt ci-dessus ;)

giphy

@bitcrazed Je suis allé de l'avant et j'ai essayé de créer un problème mais déjà @be5invis a soumis https://github.com/Microsoft/console/issues/57 ! Les gens dans ce numéro, espérons-le, donneront beaucoup de 👍 au problème et attireront davantage l'attention de Microsoft.

Si vous ne voulez pas de solution de contournement ou de piratage, go-winpty peut être utilisé pour cela.

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

https://asciinema.org/a/r0UNULw8K5r0HV35kTLOatAbX

https://asciinema.org/a/HttJNKCwM9Tb1NlVP5PFy6Ftx

@fquinner , je suis désolé, pourriez-vous écrire en détail, comment vous enregistrez ces vidéos ?

J'essaie d'installer et d'exécuter @mattn fork sous Windows, mais je ne comprends pas comment je peux corriger l' erreur No module named 'termios' .

Merci.

Essayez de construire comme ci-dessous :

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

@matt ,

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)

Merci.

Désolé, c'était mon erreur. Veuillez réessayer comme ci-dessus.

@matt ,

  1. Pouvez-vous rendre l'installation de votre version plus simple ? Par exemple, pip install asciinemawindows .
  2. Je ne peux toujours pas installer votre version asciinema (oui, j'ai mis 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)

Merci.

Veuillez déplacer la discussion sur les problèmes d'installation de la fourche de mattn vers le dépôt de mattn. Merci! ;)

Si vous souhaitez discuter de la prise en charge de Windows en général, veuillez utiliser le forum de discussion d'asciinema : https://discourse.asciinema.org/

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

dlintw picture dlintw  ·  11Commentaires

omaraboumrad picture omaraboumrad  ·  10Commentaires

deeplook picture deeplook  ·  10Commentaires

lebinh picture lebinh  ·  3Commentaires

lukehinds picture lukehinds  ·  5Commentaires