Jamanner

友人の一言から作ってみたJa"m"anenr
「邪魔なー」
とりあえずどんなものかはお馴染みParttyで


いまのところ#の出現頻度は決め打ちだけどそのうち引数パーサ作る。 $ atode jamannerの引数パーサ書く
じつは頻度が低い方が、ふとした瞬間の邪魔さとか、実は嫌なのではないか。


まぁ、いずれにしてもつかわんな。うん。

#!/usr/bin/env ruby

require 'pty'


command = ENV['SHELL'] || "/bin/sh"

begin
	PTY.spawn( command ) {|r,w|
		system( "stty raw 2>/dev/null" )
		system( "stty -echo 2>/dev/null" )
		inbuf = ""
		outbuf = ""
		# 標準入力 -> コマンド
		Thread.start(r,w) {|r,w|
			while true
				$stdin.sysread( 1024, inbuf )
				w.write inbuf
				w.flush
			end
		}
		# コマンド -> 標準出力
		Thread.start(r,w) {|r,w|
			while true
				r.sysread( 1024, outbuf )
				$stdout.write outbuf
				$stdout.flush
			end
		}
		# 邪魔 -> 標準出力
		# スレッド?同期?そんなん関係ない。
		rows, cols = `stty size`.split " "
		while true
			sleep( 0.125 );
			$stdout.write "\e[s\e[#{rand(rows)};#{rand(cols)}H#\e[u"
			$stdout.flush
		end
	}
rescue
ensure
	system( "reset" )
end