Skip to content

Commit 60a2993

Browse files
[](feat) support packing of plugins
1 parent 47baa58 commit 60a2993

File tree

3 files changed

+43
-23
lines changed

3 files changed

+43
-23
lines changed

rakefile.rb

+10-6
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
PLUGINS_DEST_FOLDER = './plugins'
99
PLUGIN_RELEASE_FOLDER = './releases'
1010

11-
def build(target, hard)
11+
def build(target, hard, ver, pack)
1212
if target.nil?
1313
putsAccent('Please define target to be built like: "rake build[./plugins/plugin.complex]"', true)
1414
end
1515
versions = Versions.new
16-
plugin = Plugin.new(target, versions, hard)
16+
plugin = Plugin.new(target, versions, hard, ver, pack)
1717
if plugin.build
1818
puts "Plugin #{plugin.get_plugin_name} is built SUCCESSFULLY"
1919
else
@@ -23,12 +23,16 @@ def build(target, hard)
2323
puts "Traget is: #{target}"
2424
end
2525

26-
task :build, [:target] do |_t, args|
27-
build(args.target, false)
26+
task :pack, [:target, :ver] do |_t, args|
27+
build(args.target, false, args.ver, true)
2828
end
2929

30-
task :rebuild, [:target] do |_t, args|
31-
build(args.target, true)
30+
task :build, [:target, :ver] do |_t, args|
31+
build(args.target, false, args.ver, false)
32+
end
33+
34+
task :rebuild, [:target, :ver] do |_t, args|
35+
build(args.target, true, args.ver, false)
3236
end
3337

3438
task :synch, [:target] do |_t, args|

scripts/plugin.rb

+25-17
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,17 @@
77
require './scripts/tools'
88

99
class Plugin
10-
def initialize(path, versions, hard)
10+
def initialize(path, versions, hard, version, pack)
1111
@name = File.basename(path)
1212
@path = path
1313
@versions = versions
1414
@hard = hard
15+
@pack = pack
16+
@version = if version.nil?
17+
'999.999.999'
18+
else
19+
version
20+
end
1521
end
1622

1723
def build
@@ -63,20 +69,23 @@ def build
6369
end
6470
copy_dist(backend.get_path, "#{dest}/process") if backend.get_state
6571
copy_dist(frontend.get_path, "#{dest}/render") if frontend.get_state
66-
file_name = self.class.get_name(@name, @versions.get_hash, '999.999.999')
72+
file_name = self.class.get_name(@name, @versions.get_hash, @version)
6773
self.class.add_info(dest, {
68-
'name' => @name,
69-
'file' => file_name,
70-
'version' => '999.999.999',
71-
'hash' => @versions.get_hash,
72-
'phash' => @versions.get_dep_hash(dependencies),
73-
'url' => '',
74-
'display_name' => @name,
75-
'description' => @name,
76-
'readme' => '',
77-
'icon' => '',
78-
'dependencies' => dependencies
79-
})
74+
'name' => @name,
75+
'file' => file_name,
76+
'version' => @version,
77+
'hash' => @versions.get_hash,
78+
'phash' => @versions.get_dep_hash(dependencies),
79+
'url' => '',
80+
'display_name' => @name,
81+
'description' => @name,
82+
'readme' => '',
83+
'icon' => '',
84+
'dependencies' => dependencies
85+
})
86+
if @pack
87+
compress("#{PLUGIN_RELEASE_FOLDER}/#{file_name}", PLUGIN_RELEASE_FOLDER, @name)
88+
end
8089
true
8190
end
8291

@@ -86,11 +95,11 @@ def synch
8695
return
8796
end
8897
frontend = PluginFrontend.new(@path, @versions.get)
89-
if !frontend.exist
98+
unless frontend.exist
9099
puts "Plugin \"#{@name}\" doesn't have frontend. No need to synch."
91100
return
92101
end
93-
if !frontend.has_angular
102+
unless frontend.has_angular
94103
puts "Plugin \"#{@name}\" doesn't have angular part. No need to synch."
95104
return
96105
end
@@ -139,5 +148,4 @@ def self.add_info(dest, entry)
139148
f.write(entry.to_json)
140149
end
141150
end
142-
143151
end

scripts/tools.rb

+8
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,11 @@ def putsAccent(text, err = false)
2828
puts "\n#{border}\n#{text}\n#{border}\n\n"
2929
end
3030
end
31+
32+
def compress(output_file, pwd, dest)
33+
if OS.windows?
34+
Rake.sh "tar -czf #{output_file} -C #{pwd} #{dest} --force-local"
35+
else
36+
Rake.sh "tar -czf #{output_file} -C #{pwd} #{dest} "
37+
end
38+
end

0 commit comments

Comments
 (0)