esr-rim 1.4.0 → 1.4.2

Sign up to get free protection for your applications and to get access to all the features.
data/lib/rim/git.rb CHANGED
@@ -190,7 +190,7 @@ class GitSession
190
190
  path_args << " "
191
191
  path_args << paths.shift
192
192
  end
193
- execute "git archive --format tar #{rev} #{path_args} | tar -x -C #{dir}"
193
+ execute "git archive --format tar #{rev} #{path_args} | tar -C #{dir} -xf -"
194
194
  break if paths.empty?
195
195
  end
196
196
  end
@@ -200,6 +200,7 @@ class GitSession
200
200
  # returns the value returned by the block
201
201
  def within_exported_rev(rev, paths=[])
202
202
  Dir.mktmpdir("rim") do |d|
203
+ d = Dir.glob(d)[0]
203
204
  c = File.join(d, "content")
204
205
  FileUtils.mkdir(c)
205
206
  export_rev(rev, c, paths)
@@ -1,82 +1,82 @@
1
- require 'monitor'
2
- require 'pathname'
3
-
4
- module RIM
5
- module Manifest
6
-
7
- class RimError < StandardError
8
- def self.status_code(code)
9
- define_method(:status_code) { code }
10
- end
11
- end
12
-
13
- class ManifestFileNotFound < RimError; status_code(10) ; end
14
-
15
- module Helpers
16
- CHDIR_MONITOR = Monitor.new
17
- CONFIG_FILE_NAME = "manifest.rim"
18
-
19
- def default_manifest
20
- manifest = find_manifest
21
- raise ManifestFileNotFound, "Could not locate #{CONFIG_FILE_NAME}" unless manifest
22
- Pathname.new(manifest)
23
- end
24
-
25
- def default_lockfile
26
- manifest = default_manifest
27
- Pathname.new(manifest.sub(/.rim$/, '.locked'))
28
- end
29
-
30
- def in_rim_project?
31
- find_manifest
32
- end
33
-
34
- def chdir_monitor
35
- CHDIR_MONITOR
36
- end
37
-
38
- def chdir(dir, &blk)
39
- chdir_monitor.synchronize do
40
- Dir.chdir dir, &blk
41
- end
42
- end
43
-
44
- private
45
-
46
- def find_manifest
47
- given = ENV['RIM_MANIFEST']
48
- return given if given && !given.empty?
49
-
50
- find_file(CONFIG_FILE_NAME)
51
- end
52
-
53
- def find_file(*names)
54
- search_up(*names) {|filename|
55
- return filename if File.file?(filename)
56
- }
57
- end
58
-
59
- def find_directory(*names)
60
- search_up(*names) do |dirname|
61
- return dirname if File.directory?(dirname)
62
- end
63
- end
64
-
65
- def search_up(*names)
66
- previous = nil
67
- current = File.expand_path(Dir.pwd)
68
-
69
- until !File.directory?(current) || current == previous
70
- names.each do |name|
71
- filename = File.join(current, name)
72
- yield filename
73
- end
74
- current, previous = File.expand_path("..", current), current
75
- end
76
- end
77
- extend self
78
- end
79
-
80
- end # Manifest
81
- end # RIM
82
-
1
+ require 'monitor'
2
+ require 'pathname'
3
+
4
+ module RIM
5
+ module Manifest
6
+
7
+ class RimError < StandardError
8
+ def self.status_code(code)
9
+ define_method(:status_code) { code }
10
+ end
11
+ end
12
+
13
+ class ManifestFileNotFound < RimError; status_code(10) ; end
14
+
15
+ module Helpers
16
+ CHDIR_MONITOR = Monitor.new
17
+ CONFIG_FILE_NAME = "manifest.rim"
18
+
19
+ def default_manifest
20
+ manifest = find_manifest
21
+ raise ManifestFileNotFound, "Could not locate #{CONFIG_FILE_NAME}" unless manifest
22
+ Pathname.new(manifest)
23
+ end
24
+
25
+ def default_lockfile
26
+ manifest = default_manifest
27
+ Pathname.new(manifest.sub(/.rim$/, '.locked'))
28
+ end
29
+
30
+ def in_rim_project?
31
+ find_manifest
32
+ end
33
+
34
+ def chdir_monitor
35
+ CHDIR_MONITOR
36
+ end
37
+
38
+ def chdir(dir, &blk)
39
+ chdir_monitor.synchronize do
40
+ Dir.chdir dir, &blk
41
+ end
42
+ end
43
+
44
+ private
45
+
46
+ def find_manifest
47
+ given = ENV['RIM_MANIFEST']
48
+ return given if given && !given.empty?
49
+
50
+ find_file(CONFIG_FILE_NAME)
51
+ end
52
+
53
+ def find_file(*names)
54
+ search_up(*names) {|filename|
55
+ return filename if File.file?(filename)
56
+ }
57
+ end
58
+
59
+ def find_directory(*names)
60
+ search_up(*names) do |dirname|
61
+ return dirname if File.directory?(dirname)
62
+ end
63
+ end
64
+
65
+ def search_up(*names)
66
+ previous = nil
67
+ current = File.expand_path(Dir.pwd)
68
+
69
+ until !File.directory?(current) || current == previous
70
+ names.each do |name|
71
+ filename = File.join(current, name)
72
+ yield filename
73
+ end
74
+ current, previous = File.expand_path("..", current), current
75
+ end
76
+ end
77
+ extend self
78
+ end
79
+
80
+ end # Manifest
81
+ end # RIM
82
+
@@ -1,41 +1,41 @@
1
- require 'json'
2
- require 'csv'
3
- require 'rim/manifest/model'
4
-
5
- class RimError < StandardError
6
- def self.status_code(code)
7
- define_method(:status_code) { code }
8
- end
9
- end
10
-
11
- class ManifestFileNotFound < RimError; status_code(10) ; end
12
-
13
- module RIM
14
- module Manifest
15
-
16
- def read_manifest(f)
17
- raise "no manifest found" unless f
18
- parse_manifest(File.read(f))
19
- end
20
-
21
- def parse_manifest(json)
22
- data_hash = JSON.parse(json)
23
- modules = []
24
- if data_hash.has_key?("modules")
25
- data_hash["modules"].each do |mod|
26
- modules.push(
27
- Module.new(
28
- :remote_path => mod["remote_path"],
29
- :local_path => mod["local_path"],
30
- :target_revision => mod["target_revision"],
31
- :ignores => mod["ignores"],
32
- :subdir => mod["subdir"]
33
- ))
34
- end
35
- end
36
- Manifest.new(data_hash["remote_url"], modules)
37
- end
38
-
39
- end
40
-
41
- end
1
+ require 'json'
2
+ require 'csv'
3
+ require 'rim/manifest/model'
4
+
5
+ class RimError < StandardError
6
+ def self.status_code(code)
7
+ define_method(:status_code) { code }
8
+ end
9
+ end
10
+
11
+ class ManifestFileNotFound < RimError; status_code(10) ; end
12
+
13
+ module RIM
14
+ module Manifest
15
+
16
+ def read_manifest(f)
17
+ raise "no manifest found" unless f
18
+ parse_manifest(File.read(f))
19
+ end
20
+
21
+ def parse_manifest(json)
22
+ data_hash = JSON.parse(json)
23
+ modules = []
24
+ if data_hash.has_key?("modules")
25
+ data_hash["modules"].each do |mod|
26
+ modules.push(
27
+ Module.new(
28
+ :remote_path => mod["remote_path"],
29
+ :local_path => mod["local_path"],
30
+ :target_revision => mod["target_revision"],
31
+ :ignores => mod["ignores"],
32
+ :subdir => mod["subdir"]
33
+ ))
34
+ end
35
+ end
36
+ Manifest.new(data_hash["remote_url"], modules)
37
+ end
38
+
39
+ end
40
+
41
+ end
@@ -1,7 +1,7 @@
1
- {
2
- "remote_url" : "ssh://gerrit",
3
- "modules" : [
4
- {"local_path": "./bsw/nvStorage", "remote_path": "bsw/modules/nvStorage", "target_revision": "1.1"},
5
- {"local_path": "./bsw/eepromManager", "remote_path":"bsw/modules/eepromManager", "target_revision": "1.0"}
6
- ]
7
- }
1
+ {
2
+ "remote_url" : "ssh://gerrit",
3
+ "modules" : [
4
+ {"local_path": "./bsw/nvStorage", "remote_path": "bsw/modules/nvStorage", "target_revision": "1.1"},
5
+ {"local_path": "./bsw/eepromManager", "remote_path":"bsw/modules/eepromManager", "target_revision": "1.0"}
6
+ ]
7
+ }
@@ -1,57 +1,57 @@
1
- require 'rim/processor'
2
- require 'rim/rim_exception'
3
- require 'rim/rim_info'
4
- require 'rim/file_helper'
5
- require 'rim/dirty_check'
6
-
7
- module RIM
8
-
9
- class ModuleHelper < Processor
10
-
11
- attr_reader :module_info
12
-
13
- def initialize(workspace_root, module_info, logger)
14
- super(workspace_root, logger)
15
- @module_info = module_info
16
- @remote_url = get_absolute_remote_url(@module_info.remote_url) if @module_info.remote_url
17
- @remote_path = remote_path(@module_info.remote_url) if @module_info.remote_url
18
- @logger = logger
19
- end
20
-
21
- protected
22
-
23
- # fetch module +mod+ into the .rim folder
24
- # works both for initial fetch and updates
25
- def fetch_module
26
- FileUtils.mkdir_p git_path
27
- RIM::git_session(git_path) do |s|
28
- if !File.exist?(git_path + "/config")
29
- s.execute("git clone --mirror #{@remote_url} #{git_path}") do |out, e|
30
- raise RimException.new("Remote repository '#{@remote_url}' of module '#{@module_info.local_path}' not found.") if e
31
- end
32
- else
33
- s.execute("git remote update")
34
- end
35
- end
36
- git_path
37
- end
38
-
39
- # prepare empty folder: remove all files not on the ignore list and empty folders
40
- def prepare_empty_folder(local_path, ignores)
41
- ignores = FileHelper.find_matching_files(local_path, true, ignores)
42
- FileHelper.find_matching_files(local_path, true, "/**/*", File::FNM_DOTMATCH).each do |f|
43
- if File.file?(f) && !ignores.include?(f)
44
- FileUtils.rm(f)
45
- end
46
- end
47
- FileHelper.remove_empty_dirs(local_path)
48
- FileUtils.mkdir_p(local_path)
49
- end
50
-
51
- def git_path
52
- module_git_path(@remote_path)
53
- end
54
-
55
- end
56
-
57
- end
1
+ require 'rim/processor'
2
+ require 'rim/rim_exception'
3
+ require 'rim/rim_info'
4
+ require 'rim/file_helper'
5
+ require 'rim/dirty_check'
6
+
7
+ module RIM
8
+
9
+ class ModuleHelper < Processor
10
+
11
+ attr_reader :module_info
12
+
13
+ def initialize(workspace_root, module_info, logger)
14
+ super(workspace_root, logger)
15
+ @module_info = module_info
16
+ @remote_url = get_absolute_remote_url(@module_info.remote_url) if @module_info.remote_url
17
+ @remote_path = remote_path(@module_info.remote_url) if @module_info.remote_url
18
+ @logger = logger
19
+ end
20
+
21
+ protected
22
+
23
+ # fetch module +mod+ into the .rim folder
24
+ # works both for initial fetch and updates
25
+ def fetch_module
26
+ FileUtils.mkdir_p git_path
27
+ RIM::git_session(git_path) do |s|
28
+ if !File.exist?(git_path + "/config")
29
+ s.execute("git clone --mirror #{@remote_url} #{git_path}") do |out, e|
30
+ raise RimException.new("Remote repository '#{@remote_url}' of module '#{@module_info.local_path}' not found.") if e
31
+ end
32
+ else
33
+ s.execute("git remote update")
34
+ end
35
+ end
36
+ git_path
37
+ end
38
+
39
+ # prepare empty folder: remove all files not on the ignore list and empty folders
40
+ def prepare_empty_folder(local_path, ignores)
41
+ ignores = FileHelper.find_matching_files(local_path, true, ignores)
42
+ FileHelper.find_matching_files(local_path, true, "/**/*", File::FNM_DOTMATCH).each do |f|
43
+ if File.file?(f) && !ignores.include?(f)
44
+ FileUtils.rm(f)
45
+ end
46
+ end
47
+ FileHelper.remove_empty_dirs(local_path)
48
+ FileUtils.mkdir_p(local_path)
49
+ end
50
+
51
+ def git_path
52
+ module_git_path(@remote_path)
53
+ end
54
+
55
+ end
56
+
57
+ end
@@ -1,43 +1,43 @@
1
- module RIM
2
-
3
- class ModuleInfo
4
- # remote url (unique identifier of module)
5
- attr_reader :remote_url
6
- # remote branch format
7
- attr_reader :remote_branch_format
8
- # locale module path
9
- attr_reader :local_path
10
- # target revision
11
- attr_reader :target_revision
12
- # ignores
13
- attr_reader :ignores
14
-
15
- attr_reader :subdir
16
-
17
- def initialize(remote_url,
18
- local_path,
19
- target_revision,
20
- ignores = nil,
21
- remote_branch_format = nil,
22
- subdir = nil)
23
- @remote_url = remote_url
24
- @remote_branch_format = remote_branch_format
25
- @local_path = local_path
26
- @target_revision = target_revision
27
- @subdir = subdir
28
- if ignores.is_a?(String)
29
- @ignores = ignores.split(",").each do |s|
30
- s.strip!
31
- end
32
- else
33
- @ignores = ignores || []
34
- end
35
- end
36
-
37
- def valid?
38
- return @remote_url && @local_path && @target_revision
39
- end
40
-
41
- end
42
-
43
- end
1
+ module RIM
2
+
3
+ class ModuleInfo
4
+ # remote url (unique identifier of module)
5
+ attr_reader :remote_url
6
+ # remote branch format
7
+ attr_reader :remote_branch_format
8
+ # locale module path
9
+ attr_reader :local_path
10
+ # target revision
11
+ attr_reader :target_revision
12
+ # ignores
13
+ attr_reader :ignores
14
+
15
+ attr_reader :subdir
16
+
17
+ def initialize(remote_url,
18
+ local_path,
19
+ target_revision,
20
+ ignores = nil,
21
+ remote_branch_format = nil,
22
+ subdir = nil)
23
+ @remote_url = remote_url
24
+ @remote_branch_format = remote_branch_format
25
+ @local_path = local_path
26
+ @target_revision = target_revision
27
+ @subdir = subdir
28
+ if ignores.is_a?(String)
29
+ @ignores = ignores.split(",").each do |s|
30
+ s.strip!
31
+ end
32
+ else
33
+ @ignores = ignores || []
34
+ end
35
+ end
36
+
37
+ def valid?
38
+ return @remote_url && @local_path && @target_revision
39
+ end
40
+
41
+ end
42
+
43
+ end