ebm 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 8ad007e4af3a408677cb93bc4df24416f14238a4
4
- data.tar.gz: 2a7a8ed1badc38a107658cac981bb3a62e14d165
5
2
  SHA512:
6
- metadata.gz: f171c575262087494253ed30c057dec0affd6d2d9195a9592017dc6da2286ed33dd008d038446f0c69834e23eaa4c2e1b34fee4410a995dca24e174f3085a58c
7
- data.tar.gz: 794b5095d08a3f7d847273c8cd290e25f419b1bcd75a8b2785b52fc24dea257752ba98a9f8644b0f668eee791a2c9a924cbed20f3157451f1add3cbc76f35206
3
+ data.tar.gz: dfe1224e61bb17252599956595bc87af6bff06e26d7904e2cd061bbb81bbf3fe42f79b5180c484e629146b10c15224dcb6052f32d4895ee1ffbe470d2c26ebfd
4
+ metadata.gz: 57467a5d326b1c76f046b0c90ef6abbe6ae2674689facd201c055f2d3f5a63f530b1b07208f286e2dd426c7a3ead79ac892afc627a8fac5a0baa1c1087a005fd
5
+ SHA1:
6
+ data.tar.gz: ef8fcd209905525a617b89701640b0ef94b2e1a1
7
+ metadata.gz: d222c1df8e6aaaaf53206431c5b0397ed212c3b4
@@ -0,0 +1,89 @@
1
+ #
2
+ # Greg Seitz
3
+ #
4
+ # Copyright 2013, eBay Inc.
5
+ # All rights reserved.
6
+ # http://www.ebay.com
7
+ #
8
+ module Commands
9
+ class Pull
10
+
11
+ # holds the options that were passed
12
+ # you can set any initial defaults here
13
+ def options
14
+ @options ||= {
15
+ }
16
+ end
17
+
18
+ # required options
19
+ def required_options
20
+ @required_options ||= Set.new [
21
+ ]
22
+ end
23
+
24
+ def register(opts, global_options)
25
+ opts.banner = "Usage: pull [options]"
26
+ opts.description = "Prepare your build environment"
27
+
28
+ opts.on('-t', "--tag name", "Name of the remote tag that you want to checkout. Warning this will overwrite any local changes.") do |v|
29
+ options[:tag] = v
30
+ end
31
+
32
+ end
33
+
34
+ def run(global_options)
35
+
36
+ # see if we can open the config file - we append the .config suffix
37
+ # the file is expected to be in JSON format
38
+ tag = options[:tag]
39
+ force = options[:force]
40
+
41
+ if ARGV.length > 0
42
+ raise "You must specify all arguments with their options. You probably meant to use -b for the branch"
43
+ end
44
+
45
+ # determine config_name by extracting parent of our directory
46
+ config_name = EbmSharedLib.config_name_from_dir(Dir.pwd)
47
+
48
+ # try to make sure the repo is available
49
+ EbmSharedLib.prepare_config_repo
50
+ info = EbmSharedLib.read_repo_config(config_name, "Config not found, make sure you are in the top level version directory.")
51
+ # Back up to version parent dir. This directory contains the top level repos.
52
+ top_dir = Dir.pwd
53
+
54
+ repos = info[:repos]
55
+ repos.each do |repo|
56
+ if repo[:create_dev_branch]
57
+ repo_name = EbmSharedLib.get_repo_name(repo[:git_path])
58
+ repo_path = "#{top_dir}/#{repo_name}"
59
+ puts("\n#{repo_name} pull:\n");
60
+
61
+ cmd = "git fetch --all"
62
+ if EbmSharedLib::CL.do_cmd_result(cmd, repo_path) != 0
63
+ raise "Git fetch failed for #{repo_name}."
64
+ end
65
+
66
+ if tag
67
+ # use git checkout to force changes from either tag or branch
68
+ cmd = "git checkout -f refs/tags/#{tag}"
69
+ if EbmSharedLib::CL.do_cmd_result(cmd, repo_path) != 0
70
+ raise "Git checkout failed for #{repo_name}."
71
+ end
72
+ else
73
+ # use a normal pull from the specified remote repo
74
+ cmd = "git pull"
75
+ if EbmSharedLib::CL.do_cmd_result(cmd, repo_path) != 0
76
+ raise "Git pull failed for #{repo_name}."
77
+ end
78
+ end
79
+ cmd = "git submodule update"
80
+ if EbmSharedLib::CL.do_cmd_result(cmd, repo_path) != 0
81
+ raise "Updating submodules for #{repo_name} failed."
82
+ end
83
+ end
84
+ end
85
+
86
+ end
87
+
88
+ end
89
+ end
@@ -33,9 +33,10 @@ module Commands
33
33
  # the file is expected to be in JSON format
34
34
 
35
35
  # determine config_name by extracting parent of our directory
36
- config_name = "#{Dir.pwd}".split("/")[-2]
36
+ config_name = EbmSharedLib.config_name_from_dir(Dir.pwd)
37
+ # config_name = "#{Dir.pwd}".split("/")[-2]
37
38
  if config_name.nil?
38
- raise "No version directory found. This command must be run from within one of your top level repos."
39
+ raise "No version directory found. This command must be run from the top level directory (i.e. iphone_3.1)."
39
40
  end
40
41
 
41
42
  # try to make sure the repo is available
data/lib/commands.rb CHANGED
@@ -20,3 +20,4 @@ require 'commands/make_sample'
20
20
  require 'commands/tag'
21
21
  require 'commands/status'
22
22
  require 'commands/periodic'
23
+ require 'commands/pull'
data/lib/ebm.rb CHANGED
@@ -49,6 +49,7 @@ class Ebm
49
49
  sub_commands[:tag] = Commands::Tag.new
50
50
  sub_commands[:status] = Commands::Status.new
51
51
  sub_commands[:periodic] = Commands::Periodic.new
52
+ sub_commands[:pull] = Commands::Pull.new
52
53
  end
53
54
 
54
55
  def setup
@@ -59,7 +59,7 @@ module EbmSharedLib
59
59
  end
60
60
 
61
61
  # read and return the config info for this repo
62
- def self.read_repo_config(config_name)
62
+ def self.read_repo_config(config_name, err_msg = nil)
63
63
  config_path = "#{EbmSharedLib::CONFIG_PATH}/configs/#{config_name}#{EbmSharedLib::CONFIG_SUFFIX}"
64
64
 
65
65
  begin
@@ -67,7 +67,8 @@ module EbmSharedLib
67
67
  info = JSON.parse(json)
68
68
  info.recursively_symbolize_keys!
69
69
  rescue
70
- raise "Error opening config file JSON: #{config_path}"
70
+ msg = err_msg.nil? ? "Error opening config file JSON: #{config_path}" : err_msg
71
+ raise msg
71
72
  end
72
73
  end
73
74
 
data/lib/info.rb CHANGED
@@ -7,6 +7,6 @@
7
7
  #
8
8
  class Info
9
9
  def self.version
10
- "0.0.12"
10
+ "0.0.13"
11
11
  end
12
12
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ebm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Greg Seitz
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2013-05-31 00:00:00 Z
12
+ date: 2013-06-25 00:00:00 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: subcommand
@@ -54,6 +54,7 @@ files:
54
54
  - lib/commands/make_sample.rb
55
55
  - lib/commands/periodic.rb
56
56
  - lib/commands/prepare.rb
57
+ - lib/commands/pull.rb
57
58
  - lib/commands/status.rb
58
59
  - lib/commands/tag.rb
59
60
  - lib/commands.rb