ebm 0.0.12 → 0.0.13

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 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