Asciinema: рд░реАрдпрд▓-рдЯрд╛рдЗрдо рдореЗрдВ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦрдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдЕрдЧре░ 2015  ┬╖  23рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: asciinema/asciinema

рдкреНрд░рдЬрдирди рдХреЗ рдЪрд░рдг:

  • рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ;
  • рдЕрд╕рд┐рдирд┐рдорд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорд╛рд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдмрдВрдж рдХрд░реЗрдВ);
  • рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ тАФ рдХреЛрдИ рдирд╣реАрдВ рд╣реИред

рдбреЗрдореЛ рджреЗрдЦреЗрдВред

рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдпрджрд┐ asciinema рд╕рдордп-рд╕рдордп рдкрд░ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдлрд╝реНрд▓рд╢ рдХрд░рддрд╛ рд╣реИред рдЕрдзреВрд░реА JSON рдлрд╝рд╛рдЗрд▓ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ ( asciinema play рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред рд╕рддреНрд░ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХрд╛ рдиреБрдХрд╕рд╛рди рдХрдИ рдмрд╛рд░ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

(рдореЗрд░реЗ рдбреЗрдЬреЙрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд▓ рд░рд╣реЗ рд╕рд┐рд╕реНрдЯрдо рдЯреЗрд╕реНрдЯ рд╣реИрдВред рдореИрдВ рдЙрдирдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд╕рд┐рдиреЗрдорд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рд╡реЗрдм рдпреВрдЖрдИ рдореБрдЭреЗ рджрд┐рд▓рдЪрд╕реНрдк рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдХреВрджрдиреЗ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЛ рддреЗрдЬреА рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред)

feature request improvement

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@ рд╕рд┐рдХрд┐рд▓ - рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рд╕реБрдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ред рдореИрдВ рдЗрд╕ рдкрд░ рдирдЬрд░ рд░рдЦреВрдВрдЧрд╛ред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдЕрд╕рд┐рдирд┐рдорд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрдиреНрдп sysadmins рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╡рд┐рдХреА рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдореНрдмреЗрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рд╕рднреА 23 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЕрдЪреНрдЫрд╛ рдХреИрдЪ @vvvред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрд╛ред рд╡рд░реНрддрдорд╛рди рд╡рд┐рдЪрд╛рд░:

asciinema рдордХреНрдЦреА рдкрд░ JSON рд╕реНрдЯреНрд░реАрдо рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рд╕рдВрдкреВрд░реНрдг JSON рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреВрд░реЗ рд╕реНрдЯрдбрдЖрдЙрдЯ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрддрд╛ рд╣реИред рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЧреЛ рдХрд╛ JSON рдорд╛рд░реНрд╢рд▓рд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдПрдХ рд╕рдВрднрд╛рд╡рдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдЯреАрдПрдордкреА рдлрд╝рд╛рдЗрд▓ ( foo.json.tmp рдЕрдЧрд░ рдЖрдк foo.json рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рд╣реИрдВ) рдореЗрдВ рдлреНрд▓рд╢ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдРрд╕рд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

{ "version": 2, "width": 80, "height": 24, "env": { "TERM": "xterm-256color" } ... }
[0.1, "bash-4.3$ "]
[0.3, "l"]
[0.1, "s"]
...
...

рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ JSON рдлрд╝рд╛рдЗрд▓ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде JSON рдореИрдк рд╣реЛрддрд╛ рд╣реИ, рдмрд╛рдХреА рд╕рднреА рд╕реНрдЯрдбрдЖрдЙрдЯ рдкреНрд░рд┐рдВрдЯ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдВрддрддрдГ рдЕрдВрддрд┐рдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ stdout рдХреБрдВрдЬреА рдХреЗ рддрд╣рдд рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред

рдареАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реНрд╡рдпрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдмрд╕ рд╡рд┐рдо рдореЗрдВ рдЪрд╛рд░реЛрдВ рдУрд░ рдЪрд▓рддреА рд░реЗрдЦрд╛рдПрдВ)ред
рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЖрджреЗрд╢ asciinema recover foo.json.tmp foo.json рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╕реВрд▓реА рдХреЛ asciinema play рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ)ред

рдПрдХ рд╕рдВрднрд╛рд╡рдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдЯреАрдПрдордкреА рдлрд╝рд╛рдЗрд▓ ( foo.json.tmp рдЕрдЧрд░ рдЖрдк foo.json рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рд╣реИрдВ) рдореЗрдВ рдлреНрд▓рд╢ рдХрд░рдирд╛ рд╣реИред

рдмрдврд╝рд┐рдпрд╛ рд╣реИ! рдпрд╣ рдлреАрдЪрд░ Emacs рдХреА рдСрдЯреЛ-рд╕реЗрд╡ рдлрд╛рдЗрд▓реНрд╕ ( #foo.json# ) рдФрд░ Vim рд░рд┐рдХрд╡рд░реА рдлрд╛рдЗрд▓реНрд╕ ( .foo.json.swp ред)

рдареАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реНрд╡рдпрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдмрд╕ рд╡рд┐рдо рдореЗрдВ рдЪрд╛рд░реЛрдВ рдУрд░ рдЪрд▓рддреА рд░реЗрдЦрд╛рдПрдВ)ред

рд╕рдЪ рдХрд╣реВрдВ, рддреЛ рдореИрдВ рдСрдЯреЛ-рд╕реЗрд╡ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдореИрдиреНрдпреБрдЕрд▓ рдлрд╝рд┐рдбрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП "рд░рд┐рдХрд╡рд░" рдХрдорд╛рдВрдб, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдПрдХ рд╣рд▓реНрдХрд╛ -r | --recover рд╡рд┐рдХрд▓реНрдк рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред

рдмрд╕ рдЗрд╕реЗ рдЦреБрд▓реЗ рддреМрд░ рдкрд░ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, #82 рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рднреА рдареАрдХ рдХрд░ рджреЗрдЧрд╛ред

@xloem #82 рдХреЗрд╡рд▓ рдЙрд╕ рдорд╛рдорд▓реЗ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдПрдХ рдЪрд░рдг рдореЗрдВ asciinema.org рдкрд░ рд░рд┐рдХ+рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред asciinema rec demo.json рдЖрдкрдХреЛ рд╕рд╛рдЗрдЯ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдбрд┐рд╕реНрдХ рдкрд░ рдХреНрд░рдорд╢рдГ рд▓рд┐рдЦрдирд╛ рднреА рдЙрддрдирд╛ рд╣реА рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдореИрдВрдиреЗ #196 рдореЗрдВ asciicast v2 рдкреНрд░рд╛рд░реВрдк рдХреЗ рдорд╕реМрджреЗ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЬреЛ рдбрд┐рд╕реНрдХ (рдФрд░ рдкрд╛рдЗрдк, рдиреЗрдЯрд╡рд░реНрдХ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ) рдХреЗ рд▓рд┐рдП рд░реАрдпрд▓-рдЯрд╛рдЗрдо рдореЗрдВ рд▓реЗрдЦрди рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕ рдкреАрдЖрд░ рд╕реЗ рдбреЙрдХреНрдЯрд░ рдХрд╛ рд╕реАрдзрд╛ рд▓рд┐рдВрдХ: https://github.com/asciinema/asciinema/blob/asciicast-v2/doc/asciicast-v2.md

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЕрддреНрдпрдзрд┐рдХ рд╕рд░рд╛рд╣рдирд╛ рдХреАред

@sickill рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди (JSON рдХреЗ рдмрдЬрд╛рдп NDJSON ) рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдЕрджреНрдпрддрди рдкрд░ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рд╕рдордЭрд╛рдПрдБрдЧреЗ?

@vvv рд╕рд╛рдорд╛рдиреНрдп JSON рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕реЗ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╕рдВрдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдХреНрд░реИрд╢ рдЖрджрд┐ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЕрдорд╛рдиреНрдп JSON рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рд╕рдорд╛рдкрди рдЧрд╛рдпрдм рдХреЛрд╖реНрдардХ)ред NDJSON (рдпрд╛ JSONLines рдЬреЛ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИ) рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдИ JSON рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХреА рдЕрдкрдиреА рд▓рд╛рдЗрди рдкрд░ред рддреЛ рдЖрдк рдирдП рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдирдИ рд▓рд╛рдЗрдиреЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрдЪреНрдЫрд╛ рдкрд░ рд░реЛрдХ/рдХреНрд░реИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрднреА рднреА рдЕрдорд╛рдиреНрдп рдирд╣реАрдВ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ asciicast v2 рдкреНрд░рд╛рд░реВрдк рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдорд╕реМрджреЗ рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ/рдпрд╣ рдХрд┐рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

@ рдПрдХ рдЪреАрдЬ рдЬреЛ рдЕрдЪреНрдЫреА рд╣реЛрдЧреА рд╡рд╣ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рддреНрд░ рдХрд╛ рдкреНрд░рд╛рд░рдВрдн рд╕рдордп рд╣реЛрдЧрд╛ред рдЗрд╕реЗ рдЕрдиреНрдп рдЯреВрд▓рд┐рдВрдЧ рдореЗрдВ рдСрдбрд┐рдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп ssh рд╕рддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ "рдЗрдВрдЬреЗрдХреНрдЯ" рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП рд╕рддреНрд░ рдХреЛ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛ ssh'd
  • рд╣реЛрд╕реНрдЯ рдирд╛рдо
  • рд╕рд░реНрд╡рд░ рд╡рд╛рддрд╛рд╡рд░рдг

рдФрд░ рдХреНрдпрд╛ рдпрд╣ рдХрд┐рд╕реА рдмрд╛рд╣рд░реА ui рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рд╣реБрдЖ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рд╣реИ , рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡рд╣рд╛рдВ рдЯрд┐рдкреНрдкрдгреА рдХрд░реВрдВрдЧрд╛ :)

рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рджреВрд░рд╕реНрде рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд╕рддреНрд░ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП asciinema рд╕реНрдерд╛рдкрд┐рдд рд╣реИ
рдПрдХ рдЬрдореНрдкрд╣реЛрд╕реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдЬрд╛рд▓ рд╕реЗ рдЬреБрдбрд╝рдирд╛ред рдмрдЪрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ,
рд╕реНрдЯреНрд░реАрдо рдФрд░ рд░реАрдкреНрд▓реЗ рд╕рддреНрд░, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдХрд╛рдлреА рд╡реГрджреНрдзрд┐ рдХрд░реЗрдВрдЧреЗ
рдЙрдХреНрдд рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдЕрд╕рд┐рдирд┐рдорд╛ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ред

рдордВрдЧрд▓рд╡рд╛рд░, 25 рдЕрдкреНрд░реИрд▓, 2017 рдХреЛ рд╕реБрдмрд╣ 5:17 рдмрдЬреЗ, рдЬреЛрд╕ рдбрд┐рдпрд╛рдЬрд╝-рдЧреЛрдВрдЬрд╛рд▓реЗрдЬ <
рд╕реВрдЪрдирд╛рдПрдВ@github.com> рдиреЗ рд▓рд┐рдЦрд╛:

@sickill https://github.com/sickill рдПрдХ рдЪреАрдЬ рдЬреЛ рдЕрдЪреНрдЫреА рд╣реЛрдЧреА, рд╡рд╣ рд╣реЛрдЧреА
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рддреНрд░ рдХрд╛ рдкреНрд░рд╛рд░рдВрдн рд╕рдордп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕реЗ рдЕрдиреНрдп рдЯреВрд▓рд┐рдВрдЧ рдореЗрдВ рдСрдбрд┐рдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп ssh рд╕рддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ "рдЗрдВрдЬреЗрдХреНрдЯ" рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк
рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП рд╕рддреНрд░ рдХреЛ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ:

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛ ssh'd
  • рд╣реЛрд╕реНрдЯ рдирд╛рдо
  • рд╕рд░реНрд╡рд░ рд╡рд╛рддрд╛рд╡рд░рдг

рдФрд░ рдХреНрдпрд╛ рдпрд╣ рдХрд┐рд╕реА рдмрд╛рд╣рд░реА ui рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рд╣реБрдЖ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/asciinema/asciinema/issues/127#issuecomment-296872546 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAi2o-cZFmoJOnPeabG0UkPfb8MVR3EMks5rzVfNgaJpZM4FuWm_
.

рдореИрдВ рдЕрдкрдиреЗ рд╕рднреА рдЯрд░реНрдорд┐рдирд▓ рд╕рддреНрд░реЛрдВ рдХрд╛ рд░рд┐рдХреЙрд░реНрдб CYA рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП asciinema (рдареАрдХ рд╣реИ, рдЕрдм рдФрд░ рдирд╣реАрдВ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдХрд╛рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯ рд░рд╣рд╛ рд╣реВрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдпрджрд┐ рдореИрдВ рднреВрд▓ рдЧрдпрд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рд╕рдкреНрддрд╛рд╣ рд╕рд░реНрд╡рд░ X рдкрд░ 3 рдмрдЬреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдерд╛ рдЕрдкрд░рд╛рд╣реНрди рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ, рдЪреВрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рд╕рдлрд▓ рдирд┐рдХрд╛рд╕ рдкрд░ рд╣реА рдлрд╝реНрд▓рд╢ рд╣реЛрддрд╛ рд╣реИ, рдореЗрд░реЗ рдЖрдзреЗ рд╕рддреНрд░реЛрдВ рдореЗрдВ рдХреЛрдИ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдВрдЧ рд╕рддреНрд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рд╕рддреНрд░ рдХреА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрд╣ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдерд╛ рдФрд░ рдХрд╛рдлреА рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдерд╛ред

@gizmonicus asciicast v2 рдкреНрд░рд╛рд░реВрдк рдФрд░ рд░реАрдпрд▓-рдЯрд╛рдЗрдо рдореЗрдВ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦрдирд╛ рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИред рдХреЛрдИ рдИрдЯреАрдП рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд▓реНрдж рд╣реА рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

@ рд╕рд┐рдХрд┐рд▓ - рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рд╕реБрдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ред рдореИрдВ рдЗрд╕ рдкрд░ рдирдЬрд░ рд░рдЦреВрдВрдЧрд╛ред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдЕрд╕рд┐рдирд┐рдорд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрдиреНрдп sysadmins рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╡рд┐рдХреА рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдореНрдмреЗрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

@timofonic рдЖрдк рдпрд╣рд╛рдВ рдЕрдкрдирд╛ рдкреНрд░рд╢реНрди рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдзреИрд░реНрдпрдкреВрд░реНрд╡рдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдпреВрдЬрд░реНрд╕ рдХреЛ рдкрд┐рдВрдЧ рдХрд░рдХреЗ рд╕рднреА рдХреЛ рд╕реНрдкреИрдо рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред

рдЕрджреНрдпрддрди: рд░реАрдпрд▓-рдЯрд╛рдЗрдо рдореЗрдВ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦрдирд╛ #196 рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧрд╛ред

рдпрджрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдмреАрдЯрд╛-рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ develop рд╢рд╛рдЦрд╛ рдЪреЗрдХрдЖрдЙрдЯ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЪреЗрдХрдЖрдЙрдЯ рдбреАрдЖрдИрдЖрд░ рд╕реЗ рдЪрд▓рд╛рдПрдВ: python3 -m asciinema rec filename ред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рд▓рд┐рдирдХреНрд╕ рдбрд┐рд╕реНрдЯреНрд░реЛ рдФрд░ рдореИрдХреЛрдЬрд╝ рдкрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдиреЛрдЯ: рдЖрдЬ рддрдХ рд╕рд░реНрд╡рд░ рдФрд░ рд╡реЗрдм рдкреНрд▓реЗрдпрд░ рдирдП asciicast рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдФрд░ рдЗрди-рдЯрд░реНрдорд┐рдирд▓ рдкреНрд▓реЗрдмреИрдХ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо @sickkill! рдореИрдВрдиреЗ рдЕрднреА рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ (рдЙрдмрдВрдЯреВ 17.04)ред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рд╕рд╛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг; рдбрдВрдк рдХреЛ рдХреНрдпрд╛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдлрд╛рдЗрд▓ рдмрдлрд░рд┐рдВрдЧ рдпрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реИ? рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ, рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реАрдорд╛рдПрдБ рдХреНрдпрд╛ рд╣реИрдВ? рдореИрдВ рдкреВрдЫрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреБрдЫ рднреА рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдЦреЗрд▓рд╛, рд╕рд╛рдорд╛рди рджрд┐рдЦрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ред

@metasoarous рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рд╡рд╛рд▓ рд╣реИред

рд▓рд┐рдЦрдиреЗ рдХреЛ рдмреИрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдЯрд╛рдЗрдордЖрдЙрдЯ рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдХрддрд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддрд╛ рд╣реИ:

https://github.com/asciinema/asciinema/blob/8e1b6f7da1a0ad4d52e63998b14c1a5133fc7836/asciinema/asciicast/v2.py#L72

"рд▓реЗрдЦрдХ" рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

https://github.com/asciinema/asciinema/blob/8e1b6f7da1a0ad4d52e63998b14c1a5133fc7836/asciinema/asciicast/v2.py#L36 -L40

рдЬреЛ f.write(...) ред

рдРрд╕рд╛ рдХрд╣рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдпрд╣ рднреА рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ ~ 8KB рд╡рд┐рдЦрдВрдбреВ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдБ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдмрдлрд╝рд░рд┐рдВрдЧ рдЪрд▓ рд░рд╣реА рд╣реИред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╛рдЗрдерди рдХрд╛ TextIOWrapper рдпрд╣рд╛рдВ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдБ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рд╣рдо рдЦреБрд▓реЗ рд╣реБрдП io рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдмрдлрд░рд┐рдВрдЧ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рд╕реНрдкрд╖реНрдЯ рдЯреНрд░рд┐рдЧрд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рддреЛ рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдЦрди рдкрд░ f.flush() , рдпрд╛ рдереНрд░реЗрд╢реЛрд▓реНрдб рд╣рд┐рдЯ рд╣реЛрдиреЗ рдкрд░ рдмрд╛рдЗрдЯ/рдЯрд╛рдЗрдо рдХрд╛рдЙрдВрдЯрд┐рдВрдЧ рдФрд░ рдлреНрд▓рд╢рд┐рдВрдЧред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдИрдУ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдмрдлрд░рд┐рдВрдЧ рдмрдВрдж рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрди рд╕реЗрдХреЗрдВрдб рдПрдХ рдХрд░реАрдмреА рд╕реЗрдХреЗрдВрдб рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рдлреНрд▓рд╢ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдХрдЯреНрдЯрд░ рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдХрд░реАрдм рдХреБрдЫ рдЪрд╛рд▓ рдЪрд▓рдиреА рдЪрд╛рд╣рд┐рдПред

рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдЕрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ "рд▓рд╛рдЗрди рдмрдлрд░рд┐рдВрдЧ" (== рдлреНрд▓рд╢ рдЬрдм рд▓рд┐рдЦрдиреЗ рдореЗрдВ \n , рдЬреЛ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ 100% рд▓рд┐рдЦрдиреЗ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ) рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрдлрд░рд┐рдВрдЧ рдиреАрддрд┐ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрдм рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрднреА рдЖрдЬрд╝рдорд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рддреБрд░рдВрдд рдмрдврд╝рддреЗ рд╣реБрдП рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ! рдЖрдкрдХреЗ рддреНрд╡рд░рд┐рдд рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП (#227 рдореЗрдВ) рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЖрдЧрд╛рдореА asciinema 2.0 рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдиреЛрдЯ: рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕реЗ рдЖрдЬрдорд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рддреЛ v2 рд╢рд╛рдЦрд╛ рдЪреЗрдХрдЖрдЙрдЯ рдХрд░реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

omaraboumrad picture omaraboumrad  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

pfalcon picture pfalcon  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dlintw picture dlintw  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

abaykan picture abaykan  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bashfulrobot picture bashfulrobot  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ