esr-rim 1.4.0 → 1.4.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/CHANGELOG +33 -0
- data/Rakefile +56 -56
- data/lib/rim/command/sync.rb +89 -89
- data/lib/rim/command_helper.rb +144 -143
- data/lib/rim/dirty_check.rb +9 -2
- data/lib/rim/file_helper.rb +0 -2
- data/lib/rim/git.rb +9 -1
- data/lib/rim/info_helper.rb +5 -1
- data/lib/rim/info_module_helper.rb +5 -0
- data/lib/rim/manifest/helper.rb +82 -82
- data/lib/rim/manifest/json_reader.rb +41 -41
- data/lib/rim/manifest/manifest.json +7 -7
- data/lib/rim/module_helper.rb +57 -57
- data/lib/rim/module_info.rb +43 -43
- data/lib/rim/processor.rb +152 -152
- data/lib/rim/rim.rb +94 -94
- data/lib/rim/rim_info.rb +2 -0
- data/lib/rim/sync_helper.rb +150 -150
- data/lib/rim/sync_module_helper.rb +107 -107
- data/lib/rim/upload_helper.rb +69 -69
- data/lib/rim/upload_module_helper.rb +163 -162
- data/lib/rim/version.rb +1 -2
- data/test/command_helper_test.rb +83 -83
- data/test/file_helper_test.rb +132 -132
- data/test/manifest_helper_test.rb +29 -29
- data/test/manifest_test_dir/manifest.rim +9 -9
- data/test/processor_test.rb +32 -32
- data/test/sync_helper_test.rb +296 -296
- data/test/sync_module_helper_test.rb +126 -126
- data/test/upload_helper_test.rb +403 -403
- data/test/upload_module_helper_test.rb +92 -92
- metadata +10 -17
- data/test/dirty_check/dir1/file2 +0 -1
- data/test/dirty_check/file1 +0 -1
- data/test/dirty_check/ign_file1 +0 -1
- data/test/rim_info/mod1/dir1/file2 +0 -1
- data/test/rim_info/mod1/file1 +0 -1
- data/test/rim_info/unrelated_file +0 -1
data/lib/rim/upload_helper.rb
CHANGED
@@ -1,69 +1,69 @@
|
|
1
|
-
require 'rim/command_helper'
|
2
|
-
require 'rim/upload_module_helper'
|
3
|
-
|
4
|
-
module RIM
|
5
|
-
|
6
|
-
class UploadHelper < CommandHelper
|
7
|
-
|
8
|
-
def initialize(workspace_root, review, logger, module_infos = nil)
|
9
|
-
@module_helpers = []
|
10
|
-
@review = review
|
11
|
-
super(workspace_root, logger, module_infos)
|
12
|
-
end
|
13
|
-
|
14
|
-
# upload all module changes into corresponding remote repositories
|
15
|
-
def upload
|
16
|
-
# get the name of the current workspace branch
|
17
|
-
RIM::git_session(@ws_root) do |s|
|
18
|
-
branch = s.current_branch
|
19
|
-
if branch.nil?
|
20
|
-
raise RimException.new("Not on a git branch.")
|
21
|
-
elsif !branch.start_with?("rim/")
|
22
|
-
begin
|
23
|
-
sha1 = s.rev_sha1(branch)
|
24
|
-
@logger.info("Uploading modules...")
|
25
|
-
upload_modules(get_upload_revisions(s, sha1))
|
26
|
-
ensure
|
27
|
-
s.execute("git checkout -B #{branch}")
|
28
|
-
end
|
29
|
-
else
|
30
|
-
raise RimException.new("The current git branch '#{branch}' is a rim integration branch. Please switch to a non rim branch to proceed.")
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
# called to add a module info
|
36
|
-
def add_module_info(module_info)
|
37
|
-
@module_helpers.push(UploadModuleHelper.new(@ws_root, module_info, @review, @logger))
|
38
|
-
end
|
39
|
-
|
40
|
-
private
|
41
|
-
# upload all modules
|
42
|
-
def upload_modules(info)
|
43
|
-
each_module_parallel("uploading", @module_helpers) do |m|
|
44
|
-
m.upload(info.parent, info.sha1s)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
# get revisions to upload i.e. the revisions up to the last remote revision
|
49
|
-
# the function returns the revisions in order of appearal i.e. the oldest first
|
50
|
-
def get_upload_revisions(session, rev)
|
51
|
-
# remote revs are where we stop traversal
|
52
|
-
non_remote_revs = {}
|
53
|
-
session.all_reachable_non_remote_revs(rev).each do |r|
|
54
|
-
non_remote_revs[r] = true
|
55
|
-
end
|
56
|
-
revisions = []
|
57
|
-
# make sure we deal only with sha1s
|
58
|
-
rev = session.rev_sha1(rev)
|
59
|
-
while rev && non_remote_revs[rev]
|
60
|
-
revisions.push(rev)
|
61
|
-
parents = session.parent_revs(rev)
|
62
|
-
rev = parents.size > 0 ? parents.first : nil
|
63
|
-
end
|
64
|
-
Struct.new(:parent, :sha1s).new(rev, revisions.reverse!)
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
68
|
-
|
69
|
-
end
|
1
|
+
require 'rim/command_helper'
|
2
|
+
require 'rim/upload_module_helper'
|
3
|
+
|
4
|
+
module RIM
|
5
|
+
|
6
|
+
class UploadHelper < CommandHelper
|
7
|
+
|
8
|
+
def initialize(workspace_root, review, logger, module_infos = nil)
|
9
|
+
@module_helpers = []
|
10
|
+
@review = review
|
11
|
+
super(workspace_root, logger, module_infos)
|
12
|
+
end
|
13
|
+
|
14
|
+
# upload all module changes into corresponding remote repositories
|
15
|
+
def upload
|
16
|
+
# get the name of the current workspace branch
|
17
|
+
RIM::git_session(@ws_root) do |s|
|
18
|
+
branch = s.current_branch
|
19
|
+
if branch.nil?
|
20
|
+
raise RimException.new("Not on a git branch.")
|
21
|
+
elsif !branch.start_with?("rim/")
|
22
|
+
begin
|
23
|
+
sha1 = s.rev_sha1(branch)
|
24
|
+
@logger.info("Uploading modules...")
|
25
|
+
upload_modules(get_upload_revisions(s, sha1))
|
26
|
+
ensure
|
27
|
+
s.execute("git checkout -B #{branch}")
|
28
|
+
end
|
29
|
+
else
|
30
|
+
raise RimException.new("The current git branch '#{branch}' is a rim integration branch. Please switch to a non rim branch to proceed.")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# called to add a module info
|
36
|
+
def add_module_info(module_info)
|
37
|
+
@module_helpers.push(UploadModuleHelper.new(@ws_root, module_info, @review, @logger))
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
# upload all modules
|
42
|
+
def upload_modules(info)
|
43
|
+
each_module_parallel("uploading", @module_helpers) do |m|
|
44
|
+
m.upload(info.parent, info.sha1s)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
# get revisions to upload i.e. the revisions up to the last remote revision
|
49
|
+
# the function returns the revisions in order of appearal i.e. the oldest first
|
50
|
+
def get_upload_revisions(session, rev)
|
51
|
+
# remote revs are where we stop traversal
|
52
|
+
non_remote_revs = {}
|
53
|
+
session.all_reachable_non_remote_revs(rev).each do |r|
|
54
|
+
non_remote_revs[r] = true
|
55
|
+
end
|
56
|
+
revisions = []
|
57
|
+
# make sure we deal only with sha1s
|
58
|
+
rev = session.rev_sha1(rev)
|
59
|
+
while rev && non_remote_revs[rev]
|
60
|
+
revisions.push(rev)
|
61
|
+
parents = session.parent_revs(rev)
|
62
|
+
rev = parents.size > 0 ? parents.first : nil
|
63
|
+
end
|
64
|
+
Struct.new(:parent, :sha1s).new(rev, revisions.reverse!)
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
@@ -1,162 +1,163 @@
|
|
1
|
-
require 'rim/module_helper'
|
2
|
-
require 'rim/rim_info'
|
3
|
-
require 'rim/file_helper'
|
4
|
-
require 'rim/dirty_check'
|
5
|
-
require 'rim/status_builder'
|
6
|
-
require 'tempfile'
|
7
|
-
|
8
|
-
module RIM
|
9
|
-
|
10
|
-
class UploadModuleHelper < ModuleHelper
|
11
|
-
|
12
|
-
def initialize(workspace_root, module_info, review, logger)
|
13
|
-
super(workspace_root, module_info, logger)
|
14
|
-
@review = review
|
15
|
-
end
|
16
|
-
|
17
|
-
# do the module uploads for revisions given by sha
|
18
|
-
def upload(parent, sha1s)
|
19
|
-
upload_module_changes(parent, sha1s)
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
# upload the content of the module
|
25
|
-
def upload_module_changes(parent_sha1, sha1s)
|
26
|
-
remote_path = fetch_module
|
27
|
-
# search for the first revision that is not
|
28
|
-
tmp_git_path = clone_or_fetch_repository(remote_path, module_tmp_git_path(@remote_path))
|
29
|
-
RIM::git_session(tmp_git_path) do |dest|
|
30
|
-
local_branch = nil
|
31
|
-
remote_branch = nil
|
32
|
-
infos = nil
|
33
|
-
if @module_info.subdir
|
34
|
-
dest_path = File.join([tmp_git_path] + @module_info.subdir.split("/"))
|
35
|
-
else
|
36
|
-
dest_path = tmp_git_path
|
37
|
-
end
|
38
|
-
RIM::git_session(@ws_root) do |src|
|
39
|
-
infos = get_branches_and_revision_infos(src, dest, parent_sha1, sha1s)
|
40
|
-
if infos.branches.size == 1
|
41
|
-
remote_branch = infos.branches[0]
|
42
|
-
if dest.has_remote_branch?(remote_branch)
|
43
|
-
infos.rev_infos.each do |rev_info|
|
44
|
-
local_branch = create_update_branch(dest, infos.parent_sha1, rev_info.src_sha1) if !local_branch
|
45
|
-
copy_revision_files(
|
46
|
-
src,
|
47
|
-
rev_info.src_sha1,
|
48
|
-
dest_path,
|
49
|
-
rev_info.rim_info.ignores
|
50
|
-
)
|
51
|
-
commit_changes(dest, local_branch, rev_info.src_sha1, rev_info.message)
|
52
|
-
end
|
53
|
-
else
|
54
|
-
raise RimException.new("The target revision '#{@module_info.target_revision}' of module #{@module_info.local_path} is not a branch. No push can be performed.")
|
55
|
-
end
|
56
|
-
elsif infos.branches.size > 1
|
57
|
-
raise RimException.new("There are commits for module #{@module_info.local_path} on multiple target revisions (#{infos.branches.join(", ")}).")
|
58
|
-
end
|
59
|
-
end
|
60
|
-
# Finally we're done. Push the changes
|
61
|
-
if local_branch && dest.rev_sha1(local_branch) != infos.parent_sha1
|
62
|
-
push_branch = @review && @module_info.remote_branch_format && !@module_info.remote_branch_format.empty? \
|
63
|
-
? @module_info.remote_branch_format % remote_branch : remote_branch
|
64
|
-
dest.execute("git push #{@remote_url} #{local_branch}:#{push_branch}")
|
65
|
-
dest.execute("git checkout --detach #{local_branch}")
|
66
|
-
dest.execute("git branch -D #{local_branch}")
|
67
|
-
@logger.info("Commited changes for module #{@module_info.local_path} to remote branch #{push_branch}.")
|
68
|
-
else
|
69
|
-
@logger.info("No changes to module #{@module_info.local_path}.")
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
# search backwards for all revision infos
|
75
|
-
def get_branches_and_revision_infos(src_session, dest_session, parent_sha1, sha1s)
|
76
|
-
infos = []
|
77
|
-
branches = []
|
78
|
-
dest_parent_sha1 = nil
|
79
|
-
(sha1s.size() - 1).step(0, -1) do |i|
|
80
|
-
info = get_revision_info(src_session, dest_session, sha1s[i])
|
81
|
-
if !info.dest_sha1 && info.rim_info.target_revision
|
82
|
-
infos.unshift(info)
|
83
|
-
branches.push(info.rim_info.target_revision) if !branches.include?(info.rim_info.target_revision)
|
84
|
-
else
|
85
|
-
dest_parent_sha1 = info.dest_sha1
|
86
|
-
break
|
87
|
-
end
|
88
|
-
end
|
89
|
-
dest_parent_sha1 = get_riminfo_for_revision(src_session, parent_sha1).revision_sha1 if !dest_parent_sha1
|
90
|
-
dest_parent_sha1 = infos.first.rim_info.revision_sha1 if !dest_parent_sha1 && !infos.empty?
|
91
|
-
return Struct.new(:branches, :parent_sha1, :rev_infos).new(branches, dest_parent_sha1, infos)
|
92
|
-
end
|
93
|
-
|
94
|
-
RevisionInfo = Struct.new(:dest_sha1, :src_sha1, :rim_info, :message)
|
95
|
-
|
96
|
-
# collect infos for a revision
|
97
|
-
def get_revision_info(src_session, dest_session, src_sha1)
|
98
|
-
module_status = StatusBuilder.new.rev_module_status(src_session, src_sha1, @module_info.local_path)
|
99
|
-
rim_info = get_riminfo_for_revision(src_session, src_sha1)
|
100
|
-
dest_sha1 = dest_session.rev_sha1("rim-#{src_sha1}")
|
101
|
-
msg = src_session.execute("git show -s --format=%B #{src_sha1}")
|
102
|
-
RevisionInfo.new(module_status && module_status.dirty? ? dest_sha1 : rim_info.revision_sha1, src_sha1, rim_info, msg)
|
103
|
-
end
|
104
|
-
|
105
|
-
# commit changes to session
|
106
|
-
def commit_changes(session, branch, sha1, msg)
|
107
|
-
if session.status.lines.any?
|
108
|
-
# add before commit because the path can be below a not yet added path
|
109
|
-
session.execute("git add --all")
|
110
|
-
msg_file = Tempfile.new('message')
|
111
|
-
begin
|
112
|
-
msg_file << msg
|
113
|
-
msg_file.close
|
114
|
-
session.execute("git commit -F #{msg_file.path}")
|
115
|
-
ensure
|
116
|
-
msg_file.close(true)
|
117
|
-
end
|
118
|
-
# create tag
|
119
|
-
session.execute("git tag rim-#{sha1} refs/heads/#{branch}")
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
# get target revision for this module for workspace revision
|
124
|
-
def get_riminfo_for_revision(session, sha1)
|
125
|
-
session.execute("git show #{sha1}:#{File.join(@module_info.local_path, RimInfo::InfoFileName)}") do |out, e|
|
126
|
-
return RimInfo.from_s(!e ? out : "")
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
# create update branch for given revision
|
131
|
-
def create_update_branch(session, dest_sha1, src_sha1)
|
132
|
-
branch = "rim/#{src_sha1}"
|
133
|
-
session.execute("git checkout -B #{branch} #{dest_sha1}")
|
134
|
-
branch
|
135
|
-
end
|
136
|
-
|
137
|
-
# copy files from given source revision into destination dir
|
138
|
-
def copy_revision_files(src_session, src_sha1, dest_dir, ignores)
|
139
|
-
Dir.mktmpdir do |tmp_dir|
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
files.
|
144
|
-
files.delete("
|
145
|
-
files.delete(
|
146
|
-
files
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
FileUtils.
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
1
|
+
require 'rim/module_helper'
|
2
|
+
require 'rim/rim_info'
|
3
|
+
require 'rim/file_helper'
|
4
|
+
require 'rim/dirty_check'
|
5
|
+
require 'rim/status_builder'
|
6
|
+
require 'tempfile'
|
7
|
+
|
8
|
+
module RIM
|
9
|
+
|
10
|
+
class UploadModuleHelper < ModuleHelper
|
11
|
+
|
12
|
+
def initialize(workspace_root, module_info, review, logger)
|
13
|
+
super(workspace_root, module_info, logger)
|
14
|
+
@review = review
|
15
|
+
end
|
16
|
+
|
17
|
+
# do the module uploads for revisions given by sha
|
18
|
+
def upload(parent, sha1s)
|
19
|
+
upload_module_changes(parent, sha1s)
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
# upload the content of the module
|
25
|
+
def upload_module_changes(parent_sha1, sha1s)
|
26
|
+
remote_path = fetch_module
|
27
|
+
# search for the first revision that is not
|
28
|
+
tmp_git_path = clone_or_fetch_repository(remote_path, module_tmp_git_path(@remote_path))
|
29
|
+
RIM::git_session(tmp_git_path) do |dest|
|
30
|
+
local_branch = nil
|
31
|
+
remote_branch = nil
|
32
|
+
infos = nil
|
33
|
+
if @module_info.subdir
|
34
|
+
dest_path = File.join([tmp_git_path] + @module_info.subdir.split("/"))
|
35
|
+
else
|
36
|
+
dest_path = tmp_git_path
|
37
|
+
end
|
38
|
+
RIM::git_session(@ws_root) do |src|
|
39
|
+
infos = get_branches_and_revision_infos(src, dest, parent_sha1, sha1s)
|
40
|
+
if infos.branches.size == 1
|
41
|
+
remote_branch = infos.branches[0]
|
42
|
+
if dest.has_remote_branch?(remote_branch)
|
43
|
+
infos.rev_infos.each do |rev_info|
|
44
|
+
local_branch = create_update_branch(dest, infos.parent_sha1, rev_info.src_sha1) if !local_branch
|
45
|
+
copy_revision_files(
|
46
|
+
src,
|
47
|
+
rev_info.src_sha1,
|
48
|
+
dest_path,
|
49
|
+
rev_info.rim_info.ignores
|
50
|
+
)
|
51
|
+
commit_changes(dest, local_branch, rev_info.src_sha1, rev_info.message)
|
52
|
+
end
|
53
|
+
else
|
54
|
+
raise RimException.new("The target revision '#{@module_info.target_revision}' of module #{@module_info.local_path} is not a branch. No push can be performed.")
|
55
|
+
end
|
56
|
+
elsif infos.branches.size > 1
|
57
|
+
raise RimException.new("There are commits for module #{@module_info.local_path} on multiple target revisions (#{infos.branches.join(", ")}).")
|
58
|
+
end
|
59
|
+
end
|
60
|
+
# Finally we're done. Push the changes
|
61
|
+
if local_branch && dest.rev_sha1(local_branch) != infos.parent_sha1
|
62
|
+
push_branch = @review && @module_info.remote_branch_format && !@module_info.remote_branch_format.empty? \
|
63
|
+
? @module_info.remote_branch_format % remote_branch : remote_branch
|
64
|
+
dest.execute("git push #{@remote_url} #{local_branch}:#{push_branch}")
|
65
|
+
dest.execute("git checkout --detach #{local_branch}")
|
66
|
+
dest.execute("git branch -D #{local_branch}")
|
67
|
+
@logger.info("Commited changes for module #{@module_info.local_path} to remote branch #{push_branch}.")
|
68
|
+
else
|
69
|
+
@logger.info("No changes to module #{@module_info.local_path}.")
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
# search backwards for all revision infos
|
75
|
+
def get_branches_and_revision_infos(src_session, dest_session, parent_sha1, sha1s)
|
76
|
+
infos = []
|
77
|
+
branches = []
|
78
|
+
dest_parent_sha1 = nil
|
79
|
+
(sha1s.size() - 1).step(0, -1) do |i|
|
80
|
+
info = get_revision_info(src_session, dest_session, sha1s[i])
|
81
|
+
if !info.dest_sha1 && info.rim_info.target_revision
|
82
|
+
infos.unshift(info)
|
83
|
+
branches.push(info.rim_info.target_revision) if !branches.include?(info.rim_info.target_revision)
|
84
|
+
else
|
85
|
+
dest_parent_sha1 = info.dest_sha1
|
86
|
+
break
|
87
|
+
end
|
88
|
+
end
|
89
|
+
dest_parent_sha1 = get_riminfo_for_revision(src_session, parent_sha1).revision_sha1 if !dest_parent_sha1
|
90
|
+
dest_parent_sha1 = infos.first.rim_info.revision_sha1 if !dest_parent_sha1 && !infos.empty?
|
91
|
+
return Struct.new(:branches, :parent_sha1, :rev_infos).new(branches, dest_parent_sha1, infos)
|
92
|
+
end
|
93
|
+
|
94
|
+
RevisionInfo = Struct.new(:dest_sha1, :src_sha1, :rim_info, :message)
|
95
|
+
|
96
|
+
# collect infos for a revision
|
97
|
+
def get_revision_info(src_session, dest_session, src_sha1)
|
98
|
+
module_status = StatusBuilder.new.rev_module_status(src_session, src_sha1, @module_info.local_path)
|
99
|
+
rim_info = get_riminfo_for_revision(src_session, src_sha1)
|
100
|
+
dest_sha1 = dest_session.rev_sha1("rim-#{src_sha1}")
|
101
|
+
msg = src_session.execute("git show -s --format=%B #{src_sha1}")
|
102
|
+
RevisionInfo.new(module_status && module_status.dirty? ? dest_sha1 : rim_info.revision_sha1, src_sha1, rim_info, msg)
|
103
|
+
end
|
104
|
+
|
105
|
+
# commit changes to session
|
106
|
+
def commit_changes(session, branch, sha1, msg)
|
107
|
+
if session.status.lines.any?
|
108
|
+
# add before commit because the path can be below a not yet added path
|
109
|
+
session.execute("git add --all")
|
110
|
+
msg_file = Tempfile.new('message')
|
111
|
+
begin
|
112
|
+
msg_file << msg
|
113
|
+
msg_file.close
|
114
|
+
session.execute("git commit -F #{msg_file.path}")
|
115
|
+
ensure
|
116
|
+
msg_file.close(true)
|
117
|
+
end
|
118
|
+
# create tag
|
119
|
+
session.execute("git tag rim-#{sha1} refs/heads/#{branch}")
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
# get target revision for this module for workspace revision
|
124
|
+
def get_riminfo_for_revision(session, sha1)
|
125
|
+
session.execute("git show #{sha1}:#{File.join(@module_info.local_path, RimInfo::InfoFileName)}") do |out, e|
|
126
|
+
return RimInfo.from_s(!e ? out : "")
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
# create update branch for given revision
|
131
|
+
def create_update_branch(session, dest_sha1, src_sha1)
|
132
|
+
branch = "rim/#{src_sha1}"
|
133
|
+
session.execute("git checkout -B #{branch} #{dest_sha1}")
|
134
|
+
branch
|
135
|
+
end
|
136
|
+
|
137
|
+
# copy files from given source revision into destination dir
|
138
|
+
def copy_revision_files(src_session, src_sha1, dest_dir, ignores)
|
139
|
+
Dir.mktmpdir do |tmp_dir|
|
140
|
+
tmp_dir = Dir.glob(tmp_dir)[0]
|
141
|
+
src_session.execute("git archive --format tar #{src_sha1} #{@module_info.local_path} | tar -C #{tmp_dir} -xf -")
|
142
|
+
tmp_module_dir = File.join(tmp_dir, @module_info.local_path)
|
143
|
+
files = FileHelper.find_matching_files(tmp_module_dir, false, "/**/*", File::FNM_DOTMATCH)
|
144
|
+
files.delete(".")
|
145
|
+
files.delete("..")
|
146
|
+
files.delete(RimInfo::InfoFileName)
|
147
|
+
files -= FileHelper.find_matching_files(tmp_module_dir, false, ignores)
|
148
|
+
# have source files now. Now clear destination folder and copy
|
149
|
+
prepare_empty_folder(dest_dir, ".git/**/*")
|
150
|
+
files.each do |f|
|
151
|
+
src_path = File.join(tmp_module_dir, f)
|
152
|
+
if File.file?(src_path)
|
153
|
+
path = File.join(dest_dir, f)
|
154
|
+
FileUtils.mkdir_p(File.dirname(path))
|
155
|
+
FileUtils.cp(src_path, path)
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
end
|
162
|
+
|
163
|
+
end
|