Asciinema: ์ฐฝ ํฌ๊ธฐ ์กฐ์ •์—์„œ ์‚ด์•„๋‚จ์ง€ ๋ชปํ•จ

์— ๋งŒ๋“  2016๋…„ 01์›” 27์ผ  ยท  9์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: asciinema/asciinema

ํฐ ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ asciinema๋ฅผ ์‹œ์ž‘ํ•œ ๋‹ค์Œ (๋…นํ™” ์ค‘) ์ฐฝ ํฌ๊ธฐ๋ฅผ ๋” ์ž‘๊ฒŒ ์กฐ์ •ํ•˜๋ฉด ๋น„๋””์˜ค๊ฐ€ ๋ชจ๋‘ ์ž˜๋ชป ๋‚˜์˜ต๋‹ˆ๋‹ค.

ํฅ๋ฏธ๋กญ๊ฒŒ๋„ ๊ทธ ๋ฐ˜๋Œ€์˜ ๋ฐฉ์‹์œผ๋กœ ์ž˜ ์‚ด์•„๋‚จ์Šต๋‹ˆ๋‹ค.

์ด ์˜ˆ์—์„œ ๋‚˜๋Š” sl - ๋‚ด๊ฐ€ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ -์„ ํฐ ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ ์‹คํ–‰ํ•œ ๋‹ค์Œ ์ฐฝ์˜ ํฌ๊ธฐ๋ฅผ ์ž‘์€ ์ฐฝ์œผ๋กœ ์กฐ์ •ํ•˜๊ณ (์ฆ‰, "์–ด์ƒ‰ํ•œ ์ผ์‹œ ์ค‘์ง€" - ์ฐฝ ํฌ๊ธฐ ์กฐ์ •) sl ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค sl . ๋‘ ๋ฒˆ์งธ ์‹คํ–‰์€ ๊ดœ์ฐฎ์•„ ๋ณด์ด์ง€๋งŒ ์ฒซ ๋ฒˆ์งธ ์‹คํ–‰์€ ์—‰๋ง์ž…๋‹ˆ๋‹ค.

https://asciinema.org/a/5wvarzb4545pohhfqnj8g9fta

์„ค๋ช…์„ ์œ„ํ•ด ์ด๊ฒƒ์€ ๋ฐ˜๋Œ€์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค. ์ž‘๊ฒŒ ์‹œ์ž‘ํ•œ ๋‹ค์Œ ํฌ๊ฒŒ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ์‹คํ–‰ ๋ชจ๋‘ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

http://asciinema.org/a/d9u278gcavlymvywrleh0kbup

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด ๋ฌธ์ œ๋Š” ๋ชจ๋“  ์ผ์ƒ ์ž‘์—…์„ ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•ด asciinema๋ฅผ ์ผ์ƒ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ธˆ์ง€ํ•˜์—ฌ ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ์ ˆ๋Œ€ ์ถ•์†Œํ•˜์ง€ ์•Š๋Š” ์งœ์ฆ๋‚˜๋Š” ์ œํ•œ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๋ชจ๋“  9 ๋Œ“๊ธ€

asciinema๋Š” ํ™”๋ฉด์„ ๊ธฐ๋กํ•˜์ง€ ์•Š๊ณ  stdout ์ŠคํŠธ๋ฆผ์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ธฐ๋ก ์„ธ์…˜ ์ด ๋๋‚  ๋•Œ ํ˜„์žฌ ํ„ฐ๋ฏธ๋„ ์น˜์ˆ˜ sl )์€ ์‹ค์ œ ํ„ฐ๋ฏธ๋„ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ฃผ์–ด์ง„ ์‹œ์ ์—์„œ ํ˜„์žฌ ํ„ฐ๋ฏธ๋„ ๋„ˆ๋น„/๋†’์ด์— ์ ํ•ฉํ•œ ์ด์Šค์ผ€์ดํ”„ ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. asciinema ํ”Œ๋ ˆ์ด์–ด๋Š” ์‹ค์ œ๋กœ ๊ธฐ๋ก๋œ stdout์„ ํ•ด์„/์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ์ด์Šค์ผ€์ดํ”„ ์‹œํ€€์Šค๋Š” ํ˜„์žฌ asciinema ํ„ฐ๋ฏธ๋„ ํฌ๊ธฐ์— ๋Œ€ํ•ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๋‹ค์‹œ ๋งํ•ด, ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด asciinema๋Š” ํ„ฐ๋ฏธ๋„ ํฌ๊ธฐ ์กฐ์ • ์ด๋ฒคํŠธ๋ฅผ ์ €์žฅํ•œ ๋‹ค์Œ(์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ) ์žฌ์ƒํ•˜๋Š” ๋™์•ˆ ์ž์ฒด "ํ„ฐ๋ฏธ๋„" ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” ํ”Œ๋ ˆ์ด์–ด ์ž์ฒด์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋Š” ์›์ธ์ด ๋˜๋ฉฐ, ์ด๋Š” ์žฌ๋ฏธ์žˆ์–ด ๋ณด์ด๊ณ (asciinema.org์—์„œ ์žฌ์ƒํ•  ๋•Œ) ๋น„์‹ค์šฉ์ ์ž…๋‹ˆ๋‹ค(์‚ฌ์ดํŠธ์— ํฌํ•จ๋  ๋•Œ).

๋‚˜๋Š” ์–ด๋ ค์›€์„ ์ดํ•ดํ•˜๊ณ  ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ ๊ณ ์น˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด ๋‹น์‹ ์—๊ฒŒ ์•Œ๋ฆฌ๊ณ  ์‹ถ์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๋ชจ๋“  ๋„ˆ๋น„์˜ ์ตœ๋Œ€ ๋„ˆ๋น„์™€ ๋ชจ๋“  ๋†’์ด์˜ ์ตœ๋Œ€ ๋†’์ด๋กœ ๋งŒ๋“ค์–ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ…์ŠคํŠธ๋Š” ์™ผ์ชฝ ์ƒ๋‹จ์— ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์€ ํ„ฐ๋ฏธ๋„๋กœ ์‹œ์ž‘ํ•˜์—ฌ ํฐ ํ„ฐ๋ฏธ๋„๋กœ ๋๋‚˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. . ๊ทธ๋ž˜๋„ ๊ณ ์น  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค :)

์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์—ฌ๊ธฐ์—๋Š” ๋” ๋งŽ์€ ๋ฏธ๋ฌ˜ํ•จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ์ด๊ฒƒ์€ ์ผ์ข…์˜ ๊ทน๋‹จ์ ์ธ ๊ฒฝ์šฐ์ด๋ฉฐ ๊ณ ์น  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์„ ์—ด์–ด๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ๋ชจ๋“  ์ผ์ƒ ์ž‘์—…์„ ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•ด asciinema๋ฅผ ์ผ์ƒ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ธˆ์ง€ํ•˜์—ฌ ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ์ ˆ๋Œ€ ์ถ•์†Œํ•˜์ง€ ์•Š๋Š” ์งœ์ฆ๋‚˜๋Š” ์ œํ•œ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ฐจ์›์— ๋Œ€ํ•œ ์œ ์—ฐ์„ฑ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋น„๋””์˜ค๋ฅผ ๋…นํ™”ํ–ˆ๊ณ  ( here ) ์–ด์ƒ‰ํ•œ ์น˜์ˆ˜๋กœ ๋‚˜์™”์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํฌํ•จ ๋œ ๋น„๋””์˜ค๊ฐ€ ํŽ˜์ด์ง€ ๋†’์ด๋ณด๋‹ค ๋” ๋งŽ์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋‹ค์‹œ ๋…น์Œํ•˜๋Š” ๊ฒƒ ์™ธ์—๋Š” ์„ ํƒ์˜ ์—ฌ์ง€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” .json ์—์„œ ๋„ˆ๋น„์™€ ๋†’์ด๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๊ฒน์น˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌผ๋ก  ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค ( this )

์ถ”์‹  ๋น„๋ก ์ด๊ฒƒ์ด ์œ„์˜ ๋…ผ์˜์˜ ์ฃผ์ œ์—์„œ ๋ฒ—์–ด๋‚ฌ์ง€๋งŒ, ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์ด๊ฒƒ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

@xloem @mukkachaitanya ์ €๋Š” ์ƒˆ๋กœ์šด ๋…น์Œ ํ˜•์‹์„ ๋””์ž์ธ ์ค‘์ž…๋‹ˆ๋‹ค(https://github.com/asciinema/asciinema/pull/196). "ํ„ฐ๋ฏธ๋„ ํฌ๊ธฐ ์กฐ์ •" ์ด๋ฒคํŠธ๋ฅผ ์ง€์›ํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ„ฐ๋ฏธ๋„ ํ™œ๋™์„ "๋ฐฑ์—…"ํ•˜๋ ค๋ฉด ์ผ๋ถ€ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ํ„ฐ๋ฏธ๋„ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋”๋ผ๋„ ์ด ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” "๊ทธ๋ƒฅ ์ž‘๋™"ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š” ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

ํ„ฐ๋ฏธ๋„ ํฌ๊ธฐ ์กฐ์ • ์ด๋ฒคํŠธ๋ฅผ ์บก์ฒ˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์‹ค์‹œ๊ฐ„ asciicast๋ฅผ ์œ„ํ•ด ์ž‘์—… ์ค‘์ธ ๋ถ„๊ธฐ์—์„œ ์ •๋ง ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋…น์Œ ์ค‘ ํฌ๊ธฐ ์กฐ์ • ์ผ€์ด์Šค๋Š” ํ™•์‹คํ•ฉ๋‹ˆ๋‹ค).

@jiangts ๋Š” ๋ ˆ์ฝ”๋”๊ฐ€ ํ„ฐ๋ฏธ๋„ ํฌ๊ธฐ ์กฐ์ •(SIGWINCH ์‹ ํ˜ธ)์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค. https://github.com/asciinema/asciinema/blob/develop/asciinema/pty_recorder.py#L108

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

Edo78 picture Edo78  ยท  5์ฝ”๋ฉ˜ํŠธ

deeplook picture deeplook  ยท  10์ฝ”๋ฉ˜ํŠธ

maphew picture maphew  ยท  12์ฝ”๋ฉ˜ํŠธ

omaraboumrad picture omaraboumrad  ยท  10์ฝ”๋ฉ˜ํŠธ

abaykan picture abaykan  ยท  10์ฝ”๋ฉ˜ํŠธ