Mercurial > hgrepos > hgweb.cgi > s4
view mpsplit.rb @ 0:b8a890828283
add se-blog.sh se-cgi.sh se-funcs.sh se-init.sh mpsplit.rb
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Thu, 16 Jul 2015 23:03:17 +0900 |
parents | |
children | 3db7524d3dea |
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") test(?d, tmpdir) || Dir.mkdir("tmp") 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 open(File.expand_path(fn, tmpdir), "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