purdypatch 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/purdypatch +1 -1
- data/lib/prettypatch/PrettyPatch.rb +1 -36
- data/lib/purdypatch/cli.rb +44 -0
- data/lib/purdypatch/version.rb +1 -1
- data/lib/purdypatch.rb +0 -43
- metadata +2 -1
data/bin/purdypatch
CHANGED
@@ -87,18 +87,6 @@ private
|
|
87
87
|
|
88
88
|
SMALLEST_EQUAL_OPERATION = 3
|
89
89
|
|
90
|
-
OPENSOURCE_TRAC_URL = "http://trac.webkit.org/"
|
91
|
-
|
92
|
-
OPENSOURCE_DIRS = Set.new %w[
|
93
|
-
Examples
|
94
|
-
LayoutTests
|
95
|
-
PerformanceTests
|
96
|
-
Source
|
97
|
-
Tools
|
98
|
-
WebKitLibraries
|
99
|
-
Websites
|
100
|
-
]
|
101
|
-
|
102
90
|
IMAGE_CHECKSUM_ERROR = "INVALID: Image lacks a checksum. This will fail with a MISSING error in run-webkit-tests. Always generate new png files using run-webkit-tests."
|
103
91
|
|
104
92
|
def self.normalize_line_ending(s)
|
@@ -134,29 +122,6 @@ private
|
|
134
122
|
end
|
135
123
|
end
|
136
124
|
|
137
|
-
def self.find_url_and_path(file_path)
|
138
|
-
# Search file_path from the bottom up, at each level checking whether
|
139
|
-
# we've found a directory we know exists in the source tree.
|
140
|
-
|
141
|
-
dirname, basename = File.split(file_path)
|
142
|
-
dirname.split(/\//).reverse.inject(basename) do |path, directory|
|
143
|
-
path = directory + "/" + path
|
144
|
-
|
145
|
-
return [OPENSOURCE_TRAC_URL, path] if OPENSOURCE_DIRS.include?(directory)
|
146
|
-
|
147
|
-
path
|
148
|
-
end
|
149
|
-
|
150
|
-
[nil, file_path]
|
151
|
-
end
|
152
|
-
|
153
|
-
def self.linkifyFilename(filename)
|
154
|
-
url, pathBeneathTrunk = find_url_and_path(filename)
|
155
|
-
|
156
|
-
url.nil? ? filename : "<a href='#{url}browser/trunk/#{pathBeneathTrunk}'>#{filename}</a>"
|
157
|
-
end
|
158
|
-
|
159
|
-
|
160
125
|
HEADER =<<EOF
|
161
126
|
<html>
|
162
127
|
<head>
|
@@ -423,7 +388,7 @@ EOF
|
|
423
388
|
|
424
389
|
def to_html
|
425
390
|
str = "<div class='FileDiff'>\n"
|
426
|
-
str += "<h1>#{
|
391
|
+
str += "<h1>#{@filename}</h1>\n"
|
427
392
|
if @image then
|
428
393
|
str += self.image_to_html
|
429
394
|
elsif @git_image then
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'mail'
|
2
|
+
require 'pathname'
|
3
|
+
require 'purdypatch/version'
|
4
|
+
require 'prettypatch/PrettyPatch'
|
5
|
+
|
6
|
+
module PurdyPatch
|
7
|
+
class CLI
|
8
|
+
def self.start(*args)
|
9
|
+
if args.empty?
|
10
|
+
puts "purdypatch expects one or more files created via `git format-patch --attach [ <since> | <revision range> ]`."
|
11
|
+
exit
|
12
|
+
end
|
13
|
+
|
14
|
+
args.each do |arg|
|
15
|
+
patch_mail_path = Pathname.new(arg)
|
16
|
+
next unless patch_mail_path.exist?
|
17
|
+
|
18
|
+
mail = Mail.read(patch_mail_path)
|
19
|
+
parts = mail.parts.dup
|
20
|
+
purdified = false
|
21
|
+
parts.each_with_index do |part, i|
|
22
|
+
next unless part.attachment? && part.content_type =~ %r(text/x-patch)
|
23
|
+
|
24
|
+
purdy_part = Mail::Part.new do
|
25
|
+
content_type 'text/html; charset=UTF-8'
|
26
|
+
body PrettyPatch.prettify(part.body.decoded)
|
27
|
+
end
|
28
|
+
mail.parts.insert(i, purdy_part)
|
29
|
+
mail.header['X-Formatter'] = "PurdyPatch-#{PurdyPatch::VERSION}"
|
30
|
+
purdified = true
|
31
|
+
end
|
32
|
+
|
33
|
+
if purdified
|
34
|
+
purdy_patch_mail_path = patch_mail_path.sub_ext('.purdypatch')
|
35
|
+
File.open(purdy_patch_mail_path, File::CREAT | File::TRUNC | File::RDWR) do |f|
|
36
|
+
f.write mail.to_s
|
37
|
+
end
|
38
|
+
puts %Q(Purdified patch email saved to "#{purdy_patch_mail_path}".)
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/lib/purdypatch/version.rb
CHANGED
data/lib/purdypatch.rb
CHANGED
@@ -1,44 +1 @@
|
|
1
|
-
require 'mail'
|
2
|
-
require 'pathname'
|
3
1
|
require 'purdypatch/version'
|
4
|
-
require 'prettypatch/PrettyPatch'
|
5
|
-
|
6
|
-
module PurdyPatch
|
7
|
-
class CLI
|
8
|
-
def self.start(*args)
|
9
|
-
if args.empty?
|
10
|
-
puts "purdypatch expects one or more files created via `git format-patch --attach [ <since> | <revision range> ]`."
|
11
|
-
exit
|
12
|
-
end
|
13
|
-
|
14
|
-
args.each do |arg|
|
15
|
-
patch_mail_path = Pathname.new(arg)
|
16
|
-
next unless patch_mail_path.exist?
|
17
|
-
|
18
|
-
mail = Mail.read(patch_mail_path)
|
19
|
-
parts = mail.parts.dup
|
20
|
-
purdified = false
|
21
|
-
parts.each_with_index do |part, i|
|
22
|
-
next unless part.attachment? && part.content_type =~ %r(text/x-patch)
|
23
|
-
|
24
|
-
purdy_part = Mail::Part.new do
|
25
|
-
content_type 'text/html; charset=UTF-8'
|
26
|
-
body PrettyPatch.prettify(part.body.decoded)
|
27
|
-
end
|
28
|
-
mail.parts.insert(i, purdy_part)
|
29
|
-
mail.header['X-Formatter'] = "PurdyPatch-#{PurdyPatch::VERSION}"
|
30
|
-
purdified = true
|
31
|
-
end
|
32
|
-
|
33
|
-
if purdified
|
34
|
-
purdy_patch_mail_path = patch_mail_path.sub_ext('.purdypatch')
|
35
|
-
File.open(purdy_patch_mail_path, File::CREAT | File::TRUNC | File::RDWR) do |f|
|
36
|
-
f.write mail.to_s
|
37
|
-
end
|
38
|
-
puts %Q(Purdified patch email saved to "#{purdy_patch_mail_path}".)
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: purdypatch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -47,6 +47,7 @@ files:
|
|
47
47
|
- lib/prettypatch/diff.rb
|
48
48
|
- lib/prettypatch/prettify.rb
|
49
49
|
- lib/purdypatch.rb
|
50
|
+
- lib/purdypatch/cli.rb
|
50
51
|
- lib/purdypatch/version.rb
|
51
52
|
- purdypatch.gemspec
|
52
53
|
homepage: https://github.com/atnan/purdypatch
|