rake-distribute 1.3.2 → 1.4.0
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/README.md +24 -5
- data/lib/rake/distribute/item.rb +4 -3
- data/lib/rake/distribute/item/erbfile.rb +20 -58
- data/lib/rake/distribute/item/file.rb +107 -13
- data/lib/rake/distribute/item/tiltfile.rb +5 -14
- data/lib/rake/distribute/version.rb +1 -1
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce2dbd83ebaa19f8c11fb744f1fc479cf6765a19
|
4
|
+
data.tar.gz: 9e5df700225fdc65df089017cba53b1ba4ea6d47
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61b0b234ee103ddf36a85a644c1de478faee9681bea1108e09a25e699bf7ace6613db7dc647176acea90ccb2815ff5addd27f9cb6eea8e63d8f35d65e2ec16ad
|
7
|
+
data.tar.gz: 43430190dc530898480533557255d102d42a1f17ed5d3781e98073fb10becd2ced408cafe558f3089d4da2e273010b1febfa41fc358a013e7c744e6a29d21f0e
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/README.md
CHANGED
@@ -18,6 +18,8 @@ It is the saver to use rake tasks to manage 1 -> n file distribution. Commonly a
|
|
18
18
|
|
19
19
|
## SYNOPSIS:
|
20
20
|
|
21
|
+
### Basic Usage
|
22
|
+
|
21
23
|
```ruby
|
22
24
|
distribute :FileItem do
|
23
25
|
from "/path/from"
|
@@ -25,19 +27,36 @@ distribute :FileItem do
|
|
25
27
|
end
|
26
28
|
|
27
29
|
distribute :ErbFile do
|
28
|
-
build_dir "build/distribute"
|
29
|
-
from "/path/from"
|
30
|
+
build_dir "build/distribute" # optional
|
31
|
+
from "/path/from.erb"
|
30
32
|
to "/path/to"
|
31
|
-
with_context {:a => 1, :b => 2}
|
33
|
+
with_context {:a => 1, :b => 2} # optional
|
34
|
+
diff do |dest, src| # optional
|
35
|
+
sh %Q{vimdo diff "#{dest}" "#{src}"}
|
36
|
+
end
|
32
37
|
end
|
33
38
|
|
34
39
|
distribute :TiltFile do
|
35
|
-
prefer Tilt::BlueClothTemplate
|
40
|
+
prefer Tilt::BlueClothTemplate # optional
|
36
41
|
from "/path/from"
|
37
42
|
to "/path/to"
|
38
|
-
with_context {:a => 1, :b => 2}
|
43
|
+
with_context {:a => 1, :b => 2} # optional
|
39
44
|
end
|
40
45
|
```
|
46
|
+
### Include Simple Build Proc
|
47
|
+
|
48
|
+
```ruby
|
49
|
+
distribute :FileItem do
|
50
|
+
build_dir "build/distribute" # optional
|
51
|
+
from "/path/from.c"
|
52
|
+
build :to => 'to' do |from, to|
|
53
|
+
sh %Q{gcc "#{from}" -o "#{to}"}
|
54
|
+
end
|
55
|
+
to "/usr/bin/to"
|
56
|
+
end
|
57
|
+
|
58
|
+
```
|
59
|
+
|
41
60
|
|
42
61
|
## DEVELOPERS:
|
43
62
|
|
data/lib/rake/distribute/item.rb
CHANGED
@@ -20,17 +20,18 @@ module Rake::Distribute
|
|
20
20
|
@src = source
|
21
21
|
end
|
22
22
|
|
23
|
-
def to(dest, options={})
|
23
|
+
def to(dest, options = {})
|
24
|
+
@dest_options = options
|
24
25
|
@dest = dest
|
25
26
|
end
|
26
27
|
|
28
|
+
|
27
29
|
def diff(&block)
|
28
30
|
raise NotImplementedError
|
29
31
|
end
|
30
32
|
|
31
33
|
def sanity?
|
32
|
-
raise SyntaxError, "
|
33
|
-
raise SyntaxError, "to: is not defined" unless defined? @dest
|
34
|
+
raise SyntaxError, "source: is not defined" unless defined? @src
|
34
35
|
end
|
35
36
|
|
36
37
|
def define_tasks
|
@@ -16,79 +16,41 @@ module Rake::Distribute
|
|
16
16
|
class ErbFile < FileItem
|
17
17
|
def initialize(&block)
|
18
18
|
@context = {}
|
19
|
-
@build_dir = File.join('build','distribute')
|
20
19
|
super
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
def build_dir(folder)
|
29
|
-
@build_dir = folder
|
20
|
+
|
21
|
+
# if the user do not define build task
|
22
|
+
@build_proc ||= Proc.new { |from, to|
|
23
|
+
# unnecessary dup to make the workflow clear
|
24
|
+
copy_entry from, to
|
25
|
+
}
|
30
26
|
end
|
31
27
|
|
32
28
|
def with_context(context)
|
33
29
|
@context = context
|
34
30
|
end
|
35
31
|
|
36
|
-
def
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
file build_file => @src do
|
42
|
-
File.open(build_file, 'w') do |f|
|
43
|
-
erb = ERB.new(File.read(@src))
|
44
|
-
f.write(erb.result(ContextStruct.new(@context).get_binding))
|
45
|
-
f.flush
|
46
|
-
end
|
32
|
+
def render(from, to)
|
33
|
+
File.open(to, 'w') do |f|
|
34
|
+
erb = ERB.new(File.read(from))
|
35
|
+
f.write(erb.result(ContextStruct.new(@context).get_binding))
|
36
|
+
f.flush
|
47
37
|
end
|
48
|
-
build_file
|
49
38
|
end
|
50
39
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
file @dest => build_file do
|
60
|
-
install build_file, @dest, @dest_options
|
61
|
-
end
|
62
|
-
|
63
|
-
desc "distribute: build"
|
64
|
-
task :build => [@build_dir, build_file]
|
65
|
-
|
66
|
-
desc "distribute: install"
|
67
|
-
task :install => [@build_dir, build_file, dest_dir, @dest]
|
68
|
-
|
69
|
-
desc "distribute: uninstall"
|
70
|
-
task :uninstall do
|
71
|
-
safe_unlink @dest if File.exists?(@dest)
|
40
|
+
alias_method :super_define_build_task, :define_build_task
|
41
|
+
def define_build_task(src)
|
42
|
+
directory @build_dir
|
43
|
+
render_dest = File.join(@build_dir,
|
44
|
+
"#{Item.sn.to_s}-#{@src.pathmap('%n')}")
|
45
|
+
file render_dest => [@src, @build_dir] do
|
46
|
+
render(@src, render_dest)
|
72
47
|
end
|
73
48
|
|
74
49
|
desc "distribute: clean"
|
75
50
|
task :clean do
|
76
|
-
safe_unlink
|
77
|
-
end
|
78
|
-
|
79
|
-
desc "distribute: clobber"
|
80
|
-
task :clobber => [:clean] do
|
81
|
-
rmdir @build_dir
|
82
|
-
end
|
83
|
-
|
84
|
-
desc "distribute: diff"
|
85
|
-
task :diff => [@build_dir, build_file] do
|
86
|
-
diff = Diffy::Diff.new(
|
87
|
-
@dest, build_file, :source => 'files', :allow_empty_diff => true
|
88
|
-
).to_s(:text)
|
89
|
-
|
90
|
-
@diff_proc.call(@dest, @src) unless diff.empty?
|
51
|
+
safe_unlink render_dest
|
91
52
|
end
|
53
|
+
super_define_build_task(render_dest)
|
92
54
|
end
|
93
55
|
|
94
56
|
end
|
@@ -7,6 +7,7 @@ module Rake::Distribute
|
|
7
7
|
class FileItem < Base
|
8
8
|
def initialize(&block)
|
9
9
|
@diff_proc = Proc.new {|dest,src| puts "#{dest} differs from #{src}"}
|
10
|
+
@build_dir = File.join('build','distribute')
|
10
11
|
super
|
11
12
|
end
|
12
13
|
|
@@ -15,40 +16,133 @@ module Rake::Distribute
|
|
15
16
|
raise ArgumentError, "#{@src} does not exist!" unless File.exists?(@src)
|
16
17
|
end
|
17
18
|
|
18
|
-
def
|
19
|
-
@
|
20
|
-
@
|
19
|
+
def build(options = {}, &block)
|
20
|
+
@build_options = options
|
21
|
+
@build_proc = block if block_given?
|
22
|
+
end
|
23
|
+
|
24
|
+
def build_dir(folder)
|
25
|
+
@build_dir = folder
|
21
26
|
end
|
22
27
|
|
23
28
|
def diff(&block)
|
24
29
|
@diff_proc = block if block_given?
|
25
30
|
end
|
26
31
|
|
32
|
+
|
27
33
|
def define_tasks(options={})
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
34
|
+
if defined? @build_proc
|
35
|
+
build_dest = define_build_task(@src)
|
36
|
+
else
|
37
|
+
build_dest = nil
|
32
38
|
end
|
33
39
|
|
34
|
-
|
35
|
-
|
40
|
+
if defined? @dest
|
41
|
+
if File.directory?(@dest)
|
42
|
+
dest_folder = @dest
|
43
|
+
else
|
44
|
+
dest_folder = @dest.pathmap("%d")
|
45
|
+
directory dest_folder
|
46
|
+
file @dest => dest_folder
|
47
|
+
end
|
48
|
+
|
49
|
+
if build_dest
|
50
|
+
|
51
|
+
file @dest => build_dest do
|
52
|
+
if File.directory?(build_dest)
|
53
|
+
cp_r build_dest, @dest, @dest_options
|
54
|
+
else
|
55
|
+
install build_dest, @dest, @dest_options
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
desc "distribute: install"
|
60
|
+
task :install => @dest
|
61
|
+
|
62
|
+
|
63
|
+
define_diff_task(build_dest)
|
64
|
+
|
65
|
+
else # without build ( install @src -> @dest )
|
66
|
+
file @dest => @src do
|
67
|
+
if File.directory?(@dest)
|
68
|
+
cp_r @src, @dest, @dest_options
|
69
|
+
else
|
70
|
+
install @src, @dest, @dest_options
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
desc "distribute: install"
|
75
|
+
task :install => @dest
|
76
|
+
|
77
|
+
define_diff_task(@src)
|
78
|
+
end
|
79
|
+
|
80
|
+
desc "distribute: uninstall"
|
81
|
+
task :uninstall do
|
82
|
+
if File.directory?(@dest)
|
83
|
+
rmtree File.join(@dest, File.basename(@dest))
|
84
|
+
else
|
85
|
+
safe_unlink @dest
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
36
89
|
|
37
|
-
desc "distribute: uninstall"
|
38
|
-
task :uninstall do
|
39
|
-
safe_unlink @dest
|
40
90
|
end
|
41
91
|
|
92
|
+
end
|
93
|
+
|
94
|
+
|
95
|
+
def define_diff_task(from)
|
96
|
+
return unless defined? @dest
|
97
|
+
|
42
98
|
desc "distribute: diff"
|
43
99
|
task :diff do
|
44
100
|
diffy = Diffy::Diff.new(
|
45
|
-
@dest,
|
101
|
+
@dest, from, :source => 'files', :allow_empty_diff => true
|
46
102
|
).to_s(:text)
|
47
103
|
|
48
104
|
@diff_proc.call(@dest, @src) unless diffy.empty?
|
49
105
|
end
|
50
106
|
end
|
51
107
|
|
108
|
+
|
109
|
+
def define_build_task(from)
|
110
|
+
|
111
|
+
build_dest = File.join(@build_dir, build_to)
|
112
|
+
|
113
|
+
build_dir = File.dirname(build_dest)
|
114
|
+
directory build_dir
|
115
|
+
file build_dest => [from, build_dir] do
|
116
|
+
@build_proc.call(from, build_dest)
|
117
|
+
end
|
118
|
+
desc "distribute: build"
|
119
|
+
task :build => build_dest
|
120
|
+
|
121
|
+
desc "distribute: clean"
|
122
|
+
task :clean do
|
123
|
+
safe_unlink build_dest
|
124
|
+
end
|
125
|
+
|
126
|
+
desc "distribute: clobber"
|
127
|
+
task :clobber => [:clean] do
|
128
|
+
rmdir @build_dir
|
129
|
+
end
|
130
|
+
|
131
|
+
build_dest
|
132
|
+
end
|
133
|
+
|
134
|
+
private
|
135
|
+
|
136
|
+
|
137
|
+
|
138
|
+
def build_to
|
139
|
+
if @build_options and @build_options.has_key?(:to)
|
140
|
+
@build_options[:to]
|
141
|
+
else
|
142
|
+
"#{Item.sn.to_s}-#{@src.pathmap('%n')}"
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
52
146
|
end
|
53
147
|
|
54
148
|
end
|
@@ -9,7 +9,6 @@ module Rake::Distribute
|
|
9
9
|
|
10
10
|
class TiltFile < ErbFile
|
11
11
|
def initialize(&block)
|
12
|
-
Tilt.prefer Tilt::ErubisTemplate
|
13
12
|
super
|
14
13
|
end
|
15
14
|
|
@@ -22,23 +21,15 @@ module Rake::Distribute
|
|
22
21
|
|
23
22
|
end
|
24
23
|
|
25
|
-
def
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
file build_file => @src do
|
31
|
-
File.open(build_file, 'w') do |f|
|
32
|
-
tilt = Tilt.new(@src)
|
33
|
-
f.write(tilt.render(ContextStruct.new(@context)))
|
34
|
-
f.flush
|
35
|
-
end
|
24
|
+
def render(from, to)
|
25
|
+
File.open(to, 'w') do |f|
|
26
|
+
tilt = Tilt.new(from)
|
27
|
+
f.write(tilt.render(ContextStruct.new(@context)))
|
28
|
+
f.flush
|
36
29
|
end
|
37
|
-
build_file
|
38
30
|
end
|
39
31
|
|
40
32
|
end
|
41
|
-
|
42
33
|
end
|
43
34
|
end
|
44
35
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rake-distribute
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zhao Cai
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
eIuFwYbmfyt5/ObUtmp3BlaIStTiX9TBWeuTx6Zq6q6wDzcudbDRd+jLa2XG2AGB
|
31
31
|
S6w/KYMnbhUxfyEU1MX10sJv87WIrtgF
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2013-05-
|
33
|
+
date: 2013-05-15 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: rake
|
metadata.gz.sig
CHANGED
Binary file
|