Mercurial > hgrepos > hgweb.cgi > s4
comparison 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 |
comparison
equal
deleted
inserted
replaced
7:67a1bb482ce1 | 8:3db7524d3dea |
---|---|
3 require 'nkf' | 3 require 'nkf' |
4 Encoding.default_external = Encoding::BINARY | 4 Encoding.default_external = Encoding::BINARY |
5 Encoding.default_internal = Encoding::BINARY | 5 Encoding.default_internal = Encoding::BINARY |
6 | 6 |
7 boundary="--"+ARGV[0] # +"\r\n" | 7 boundary="--"+ARGV[0] # +"\r\n" |
8 tmpdir=(ARGV[1] || "tmp") | 8 tmpdir=(ARGV[1] || "tmp").dup |
9 test(?d, tmpdir) || Dir.mkdir("tmp") | 9 tmpdir.untaint |
10 test(?d, tmpdir) or Dir.mkdir(tmpdir) | |
10 stream=STDIN.readlines.join | 11 stream=STDIN.readlines.join |
11 stream.split(boundary)[1..-2].each do |x| | 12 stream.split(boundary)[1..-2].each do |x| |
12 header = x.sub(/\r\n\r\n.*/, "") | 13 header = x.sub(/\r\n\r\n.*/, "") |
13 name = header.scan(/\bname=([\"']?)(.*?)\1/)[0][1] | 14 name = header.scan(/\bname=([\"']?)(.*?)\1/)[0][1] |
14 body = x.sub(/.*?\r\n\r\n/m, "").sub(/\r\n$/, "") | 15 body = x.sub(/.*?\r\n\r\n/m, "").sub(/\r\n$/, "") |
15 STDERR.printf("body[%s]=[%s]\n", name, body.length) | 16 STDERR.printf("body[%s]=[%s]\n", name, body.length) |
16 if /filename=(['\"]?)(.*?)\1/ =~ header && $2 > "" | 17 if /filename=(['\"]?)(.*?)\1/ =~ header && $2 > "" |
17 fn = $2 | 18 fn = $2 |
18 open(File.expand_path(fn, tmpdir), "w") do |out| | 19 fn.untaint if File.dirname(fn)=="." |
20 open(File.expand_path(fn, tmpdir).untaint, "w") do |out| | |
19 out.write body | 21 out.write body |
20 end | 22 end |
21 printf("%s:filename=%s\n", name, fn) | 23 printf("%s:filename=%s\n", name, fn) |
22 elsif /name=(['\"]?)(.*?)\1/ =~ header | 24 elsif /name=(['\"]?)(.*?)\1/ =~ header |
23 v=$2 | 25 v=$2 |