Asciinema
asciinema.org
asciinema.org
It's simple to use. 'ttyrec filename' starts recording, ctrl-c to stop recording. 'ttyplay filename' to playback.
Of course with asciinema.org, you get the benefit of an html player for the files, that you can link and playback on your own website.
[1]http://0xcc.net/ttyrec/index.html.en [2]http://manpages.ubuntu.com/manpages/maverick/man1/ttyrec.1.h...
"curl -sL https://asciinema.org/install | sh"
Still a cool product!
Once you agree to install software, it had local access with your accounts privileges.
and SSL has nothing to do with it. packages are not cryptographically signed either and once on the system can easily become root.
{ # Prevent execution if this script was only partially downloaded
# installation code here
} # End of wrapping
I'm not sure if this is a bulletproof solution.Put it in ~/opt with xstow, and add ~/opt/bin to your path, ~/opt/man to your man-path, ~/opt/include, ~/opt/lib... to the various paths.
In this case, it seems like a lot of effort to get a tgz-archive just to download a single executable. I gather it's distributed as an archive in order for the Changelog, Readme and License to be available -- but as it's all downloaded from github anyway, it's hard to see why that really matters (rather than just have -h spit out a link or two).
As, if you're using a normal, full-featured web browser, there's no way of knowing if what you select, is what you copy and then paste -- it would probably be better to just link directly to the latest binary release for the various platforms (linux32, linux64, linux-arm, OSX 32bit, OSX 64bit) -- and let the user save the binary somewhere.
Limit the "command line instructions" to:
go get github.com/asciinema/asciinema
rather than fighting idiomatic go practices.If you really want to be clever, why not just use 0install?
hashpipe does exactly that:
Eh? Both debs and rpms can be signed with GPG keys.
rm -rf /$INSTALLER_TEMP_DIRSeriously - you pretty much just have to make a .dep and a .rpm and you're covered. Is that so hard?
Author already did that [1] and has both .deb and .rpm:
At the moment there are native packages for Ubuntu/Debian (ppa) and Fedora/CentOS (in core repo). There's also homebrew package and Arch Linux one (aur). There are 2 nice guys who maintain the first two packages, doing great job, but it always takes time until the packages are ready (we're all doing it in our spare time, and there's process, especially Fedora case, which you can't skip). I maintain Arch Linux one (while not using Arch for more than few years now) but this one's usually ready on the release day.
There are no packages for other distros, but we'll never be able to provide ones for all distros (unless we're very popular project with lots of contributors). That's fine.
But there are also situations like this: https://bugs.gentoo.org/show_bug.cgi?id=532918 Let's not get into "Go packaging" discussion again, but what you can see in the mentioned Gentoo thread there's always some problem (no vendoring is bad, vendoring is bad). Sure, these guys do this too in their spare time and they don't owe me anything.
But when seeing this I'm like "oh boy, packaging is hard, I don't have time for dealing with this". So time (or lack of thereof) is one thing. Next thing is: "apt-get install asciinema" or "brew install asciinema" is awesome because it uses your software package manager and it's a single command. For all other distros (and people wanting new version right now) you can curl/sh which is equally easy. "First download this script, then review it, then run it" is not that hard but most people wouldn't review the script anyway, and those who would are the ones who are doing that now anyway. curl/sh sucks on many fronts but I made sure the script doesn't get executed when partially downloaded and it's not "| sudo sh".
I'm thinking about using one of these services which auto-build deb/rpm, they host them as apt/yum repos etc. There are few of them out there so if anyone can point me to any "proven/reliable" one I'd appreciate that. Any suggestions on the topic are welcome!
https://github.com/jordansissel/fpm
I didn't use the build system heavily and it may be more overhead than you'd like but I thought it was a pretty neat way of doing things. Repo is here:
asciinema’s player has the distinction of being the only one I know of not based on term.js (https://github.com/chjj/term.js).
Its been great as a teaching tool as well. We've been running it on our internal network but its always hilarious to see which people accidentally have it running so we get to see people do some really dumb shit during their terminal sessions.
/rant
Link is in the FAQ.
Btw, the player is already a separate project: https://github.com/asciinema/asciinema-player/tree/next
Having said that, Asciinema certainly looks like fun.
[1] http://unixhelp.ed.ac.uk/CGI/man-cgi?script [2] Sample session: https://tinyapps.org/blog/nix/201107170745_copy_terminal_tex...
Dwarf Fortress records the game to CMV format: http://dwarffortresswiki.org/index.php/User:Jifodus/CMV_file...
But A+ for usability :-)
Our open source project contains a command line tool for Docker orchestration and Asciinema is a perfect solution to introduce its features and use cases (https://asciinema.org/~kontena).
Add some interactive controls for slow-mo/fast-forward or scrubbing forward/back and you would have a powerful tool for learning & review.
Took about 10 tries of going back as far as the history would allow to get back here. I hate sites that do that junk.
As for rewinds, you can click on the progress bar to jump to a time you want. Also, the upcoming version of the player supports fast-forward/rewind/jump keyboard shortcuts: https://github.com/asciinema/asciinema-player/blob/next/src/...
As for the playback speed you can set speed, theme, font size etc (embedding docs say this - https://asciinema.org/docs/embedding), and you can append these options to any asciicast URL too, like this: https://asciinema.org/a/21743?speed=5&theme=solarized-dark
Looks like these are not easily discoverable from the player UI, so noting this down. Thanks for bringing this up!
The app looks neat though, good job