root/lang/ruby/misc/usukod

Revision 14025, 0.6 kB (checked in by ujihisa, 4 years ago)

起動してtelnet localhost 6110すると… (OSX Leopard限定)

  • Property svn:executable set to *
Line 
1#!/usr/bin/env ruby
2require 'socket'
3unless FileTest.exist?('/tmp/usk.png')
4  system('curl http://www.kanasansoft.com/usuko/usuko-original-large.png 1>/tmp/usk.png 2>/dev/null')
5end
6gs = TCPServer.open(6110)
7puts "server is on #{gs.addr.inspect}"
8
9loop do
10  Thread.start(gs.accept) do |s|
11    puts "#{s.addr.inspect} is accepted"
12    pid = fork {
13      STDERR.reopen(File.open('/dev/null', 'w'))
14      exec ['qlmanage']*2, '-p', '/tmp/usk.png'
15    }
16    sleep 2
17    Process.kill(:TERM, pid)
18
19    puts "> #{line}"
20    puts "#{s.addr.inspect} is gone"
21    s.close
22  end
23end
Note: See TracBrowser for help on using the browser.