Mercurial > hgrepos > hgweb.cgi > s4
view mpsplit.rb @ 8:3db7524d3dea
Add default images
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Mon, 20 Jul 2015 11:30:39 +0900 |
parents | b8a890828283 |
children | 3565d93c2fb1 |
line wrap: on
line source
#!/usr/bin/env ruby21 # coding: binary require 'nkf' Encoding.default_external = Encoding::BINARY Encoding.default_internal = Encoding::BINARY boundary="--"+ARGV[0] # +"\r\n" tmpdir=(ARGV[1] || "tmp").dup tmpdir.untaint test(?d, tmpdir) or Dir.mkdir(tmpdir) stream=STDIN.readlines.join stream.split(boundary)[1..-2].each do |x| header = x.sub(/\r\n\r\n.*/, "") name = header.scan(/\bname=([\"']?)(.*?)\1/)[0][1] body = x.sub(/.*?\r\n\r\n/m, "").sub(/\r\n$/, "") STDERR.printf("body[%s]=[%s]\n", name, body.length) if /filename=(['\"]?)(.*?)\1/ =~ header && $2 > "" fn = $2 fn.untaint if File.dirname(fn)=="." open(File.expand_path(fn, tmpdir).untaint, "w") do |out| out.write body end printf("%s:filename=%s\n", name, fn) elsif /name=(['\"]?)(.*?)\1/ =~ header v=$2 out=NKF::nkf("-w -MQ", body).gsub(/([^=])\n/, "\\1=0a").gsub(/=\n/, "") printf("%s=%s\n", v, out) end end