ebm 0.0.14 → 0.0.15
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 +5 -5
- data/lib/commands/pull.rb +18 -4
- data/lib/commands/tag.rb +34 -6
- data/lib/ebmsharedlib/utilities.rb +17 -0
- data/lib/info.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 6ed5b9bfdba6c7db8b4b75cee27af82e801591a2
|
4
|
-
data.tar.gz: 39ef0f6362ad6d0cb15394ac6e2bde14bdc2b65f
|
5
2
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7b603272b2c9fc59edce589b9c11b4e5782d1edcf898b396e15f3fef9fb7dbbbd0fea03e9d0483bef301e96e8fc4dac1a03d530c99a37bb518946b850ae73d9
|
4
|
+
data.tar.gz: 00de09579c0f9729536c6c63e613b3ec6014e07421ec518610379cc9e8165c4a3a0168356c681e4f0e436ec4eb2460676e3309321e8d32cb01128b1266dcf5a4
|
5
|
+
SHA1:
|
6
|
+
metadata.gz: c749515fc92f8758856798292830057d2299b95c
|
7
|
+
data.tar.gz: 51601bc0d48c15c7b2b29e57e165a09f8c619f29
|
data/lib/commands/pull.rb
CHANGED
@@ -29,6 +29,10 @@ module Commands
|
|
29
29
|
options[:tag] = v
|
30
30
|
end
|
31
31
|
|
32
|
+
opts.on("--remote_version", "Pull from remote version branch into your current branch.") do |v|
|
33
|
+
options[:remote_version] = v
|
34
|
+
end
|
35
|
+
|
32
36
|
end
|
33
37
|
|
34
38
|
def run(global_options)
|
@@ -36,10 +40,14 @@ module Commands
|
|
36
40
|
# see if we can open the config file - we append the .config suffix
|
37
41
|
# the file is expected to be in JSON format
|
38
42
|
tag = options[:tag]
|
39
|
-
|
43
|
+
remote_version = options[:remote_version]
|
40
44
|
|
41
45
|
if ARGV.length > 0
|
42
|
-
raise "You must specify all arguments with their options.
|
46
|
+
raise "You must specify all arguments with their options."
|
47
|
+
end
|
48
|
+
|
49
|
+
if (!tag.nil? && !remote_version.nil?)
|
50
|
+
raise "You can't specify both a pull from a tag and a pull from a remote version branch together."
|
43
51
|
end
|
44
52
|
|
45
53
|
# determine config_name by extracting parent of our directory
|
@@ -56,6 +64,7 @@ module Commands
|
|
56
64
|
if repo[:create_dev_branch]
|
57
65
|
repo_name = EbmSharedLib.get_repo_name(repo[:git_path])
|
58
66
|
repo_path = "#{top_dir}/#{repo_name}"
|
67
|
+
branch = repo[:branch]
|
59
68
|
puts("\n#{repo_name} pull:\n");
|
60
69
|
|
61
70
|
cmd = "git fetch --all"
|
@@ -70,8 +79,13 @@ module Commands
|
|
70
79
|
raise "Git checkout failed for #{repo_name}."
|
71
80
|
end
|
72
81
|
else
|
73
|
-
|
74
|
-
|
82
|
+
if remote_version
|
83
|
+
# pulling from remote version branch
|
84
|
+
cmd = "git pull origin #{branch}"
|
85
|
+
else
|
86
|
+
# pull from the remote branch of the current branch
|
87
|
+
cmd = "git pull"
|
88
|
+
end
|
75
89
|
if EbmSharedLib::CL.do_cmd_result(cmd, repo_path) != 0
|
76
90
|
raise "Git pull failed for #{repo_name}."
|
77
91
|
end
|
data/lib/commands/tag.rb
CHANGED
@@ -34,6 +34,10 @@ module Commands
|
|
34
34
|
options[:delete] = v
|
35
35
|
end
|
36
36
|
|
37
|
+
opts.on("--commit_and_push", "Commit any local changes and then push the remote - should only be used by the build system.") do |v|
|
38
|
+
options[:commit_and_push] = v
|
39
|
+
end
|
40
|
+
|
37
41
|
end
|
38
42
|
|
39
43
|
def run(global_options)
|
@@ -41,7 +45,12 @@ module Commands
|
|
41
45
|
# see if we can open the config file - we append the .config suffix
|
42
46
|
# the file is expected to be in JSON format
|
43
47
|
tag = options[:tag]
|
44
|
-
delete_tag = options[:delete]
|
48
|
+
delete_tag = !!options[:delete]
|
49
|
+
commit_and_push = !!options[:commit_and_push] # the !! forces conversion to a boolean
|
50
|
+
|
51
|
+
if (commit_and_push && delete_tag)
|
52
|
+
raise "You cannot use --commit_and_push with --delete."
|
53
|
+
end
|
45
54
|
|
46
55
|
# determine config_name by extracting our directory
|
47
56
|
config_name = EbmSharedLib.config_name_from_dir(Dir.pwd)
|
@@ -60,15 +69,34 @@ module Commands
|
|
60
69
|
if repo[:taggable]
|
61
70
|
repo_name = EbmSharedLib.get_repo_name(repo[:git_path])
|
62
71
|
repo_path = "#{top_dir}/#{repo_name}"
|
63
|
-
if delete_tag
|
72
|
+
if delete_tag
|
64
73
|
cmd = "git tag -d #{tag} && git push origin :refs/tags/#{tag}"
|
65
74
|
else
|
75
|
+
if commit_and_push
|
76
|
+
# they want to commit whatever has changed and push to current remote
|
77
|
+
# first grab the current branch name
|
78
|
+
cmd = "git symbolic-ref HEAD"
|
79
|
+
result = EbmSharedLib::CL.do_cmd_output(cmd, repo_path)
|
80
|
+
if $?.exitstatus != 0
|
81
|
+
raise "Unable to get the current branch for #{repo_name}, you may be on a detached HEAD."
|
82
|
+
end
|
83
|
+
branch = result.rstrip.split("/").last
|
84
|
+
|
85
|
+
# we have the local branch so now commit and push to the remote branch
|
86
|
+
cmd = "git commit -am \"Committing changes via ebm tag --commit_and_push for tag #{tag}.\""
|
87
|
+
EbmSharedLib::CL.do_cmd_result(cmd, repo_path) # ignore any error
|
88
|
+
|
89
|
+
# now push what we just committed
|
90
|
+
cmd = "git push origin #{branch}"
|
91
|
+
if EbmSharedLib::CL.do_cmd_result(cmd, repo_path) != 0
|
92
|
+
raise "Push failed failed for #{repo_name}."
|
93
|
+
end
|
94
|
+
end
|
66
95
|
cmd = "git tag #{tag} && git push origin refs/tags/#{tag}"
|
96
|
+
if EbmSharedLib::CL.do_cmd_result(cmd, repo_path) != 0
|
97
|
+
raise "Tagging operation failed for #{repo_name}. Make sure you are in the top level #{config_name} directory."
|
98
|
+
end
|
67
99
|
end
|
68
|
-
if EbmSharedLib::CL.do_cmd_result(cmd, repo_path) != 0
|
69
|
-
raise "Tagging operation failed for #{repo_name}. Make sure you are in the top level #{config_name} directory."
|
70
|
-
end
|
71
|
-
|
72
100
|
end
|
73
101
|
end
|
74
102
|
|
@@ -40,6 +40,23 @@ module EbmSharedLib
|
|
40
40
|
def self.do_cmd_result(cmd, dir=nil)
|
41
41
|
do_cmd(cmd, dir)
|
42
42
|
end
|
43
|
+
|
44
|
+
# run a command and return the output string
|
45
|
+
def self.do_cmd_output(cmd, dir=nil)
|
46
|
+
exit_code = 0
|
47
|
+
result = ""
|
48
|
+
|
49
|
+
if dir.nil? == false
|
50
|
+
Dir.chdir(dir){
|
51
|
+
result = `#{cmd}`
|
52
|
+
}
|
53
|
+
else
|
54
|
+
result = `#{cmd}`
|
55
|
+
end
|
56
|
+
|
57
|
+
result
|
58
|
+
end
|
59
|
+
|
43
60
|
end
|
44
61
|
|
45
62
|
def self.prepare_config_repo
|
data/lib/info.rb
CHANGED
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.
|
4
|
+
version: 0.0.15
|
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-06-
|
12
|
+
date: 2013-06-26 00:00:00 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: subcommand
|