envandle 0.2.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +27 -1
- data/exe/install-envandle +50 -0
- data/lib/envandle/as_reference.rb +1 -5
- data/lib/envandle/binding.rb +0 -2
- data/lib/envandle/{elements/element.rb → element.rb} +0 -0
- data/lib/envandle/elements/gem_block.rb +7 -0
- data/lib/envandle/elements/gemfile.rb +7 -0
- data/lib/envandle/elements/gemspec_block.rb +7 -0
- data/lib/envandle/elements/git_source.rb +7 -0
- data/lib/envandle/elements/group.rb +7 -0
- data/lib/envandle/elements/source_block.rb +7 -0
- data/lib/envandle/elements.rb +17 -10
- data/lib/envandle/gemspec_cache.rb +1 -1
- data/lib/envandle/git_branch_reference.rb +6 -6
- data/lib/envandle/git_util.rb +53 -0
- data/lib/envandle/helper.rb +11 -0
- data/lib/envandle/path_reference.rb +2 -2
- data/lib/envandle/reference_cache.rb +23 -19
- data/lib/envandle/version.rb +1 -1
- data/lib/envandle.rb +24 -0
- metadata +12 -8
- data/lib/envandle/elements/illegals_and_unsupporteds.rb +0 -31
- data/lib/envandle/git.rb +0 -51
- data/lib/envandle/lib.rb +0 -21
- data/lib/envandle/shell.rb +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ac9db50e7977e1c07ba3f2a2f882d2dd00fa41e7
|
4
|
+
data.tar.gz: b570ef35b12e02cb3a47993a8676710563c32ef9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 802b941c80adf4b48a74c5ede5fb4e41f2f5da36c364518df007a0b286f3ae49ff95f87aa91e71cdcef6931c5ed0bf5644035e18f5d5b8ae7ded5e67efbd0600
|
7
|
+
data.tar.gz: 5c2185eecac33db45da7fefa71399ca0866372b810c50024a0ae63213d63d4bbcf836c55095bad39d086a7af118753464eef067f23c2e77b84a37ed99fd16a2e
|
data/README.md
CHANGED
@@ -20,7 +20,7 @@ require "envandle"
|
|
20
20
|
binding.envandle do
|
21
21
|
source "https://rubygems.org"
|
22
22
|
|
23
|
-
|
23
|
+
gem "mygem", "~> 1.0"
|
24
24
|
end
|
25
25
|
```
|
26
26
|
|
@@ -163,3 +163,29 @@ is evaluated as:
|
|
163
163
|
gem "a", path: "/path/to/a"
|
164
164
|
gem "b", path: "/path/to/b"
|
165
165
|
```
|
166
|
+
|
167
|
+
## install-envandle
|
168
|
+
|
169
|
+
The install-envandle command just installs Envandle itself with the `bundle install` command. It's useful for successfully loading Envandle in your Gemfile with the Bundler's --path option.
|
170
|
+
|
171
|
+
```
|
172
|
+
$ install-envandle -h
|
173
|
+
install-envandle [OPTIONS]
|
174
|
+
|
175
|
+
Installs Envandle using Bundler.
|
176
|
+
|
177
|
+
Options:
|
178
|
+
--envandle-source gem source (default: https://rubygems.org)
|
179
|
+
--envandle-bundle-bin command path (default: bundle)
|
180
|
+
|
181
|
+
Additionally, you can specify all of the bundle-install's options.
|
182
|
+
```
|
183
|
+
|
184
|
+
### Usage Example
|
185
|
+
|
186
|
+
```sh
|
187
|
+
$ gem install bundler
|
188
|
+
$ gem install envandle
|
189
|
+
$ install-envandle --path vendor/bundle
|
190
|
+
$ bundle install
|
191
|
+
```
|
@@ -0,0 +1,50 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$:.unshift File.expand_path("../../lib", __FILE__)
|
4
|
+
require "envandle"
|
5
|
+
require "tempfile"
|
6
|
+
|
7
|
+
gem_source = "https://rubygems.org"
|
8
|
+
bundle_bin = "bundle"
|
9
|
+
|
10
|
+
args = []
|
11
|
+
argv = ARGV.dup
|
12
|
+
while arg = argv.shift
|
13
|
+
if arg.start_with?("--gemfile")
|
14
|
+
abort "--gemfile option not allowed."
|
15
|
+
end
|
16
|
+
case arg
|
17
|
+
when "--envandle-source"
|
18
|
+
gem_source = argv.shift
|
19
|
+
when "--envandle-bundle-bin"
|
20
|
+
bundle_bin = argv.shift
|
21
|
+
when "-h", "--help"
|
22
|
+
print <<-EOS
|
23
|
+
install-envandle [OPTIONS]
|
24
|
+
|
25
|
+
Installs Envandle using Bundler.
|
26
|
+
|
27
|
+
Options:
|
28
|
+
--envandle-source gem source (default: https://rubygems.org)
|
29
|
+
--envandle-bundle-bin command path (default: bundle)
|
30
|
+
|
31
|
+
Additionally, you can specify all of the bundle-install's options.
|
32
|
+
EOS
|
33
|
+
exit
|
34
|
+
else
|
35
|
+
args << arg
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
abort "Invalid option: --envandle-source" unless gem_source
|
40
|
+
abort "Invalid option: --bundle-bin" unless bundle_bin
|
41
|
+
|
42
|
+
gemfile = Tempfile.new("install_envandle-Gemfile-", Dir.pwd)
|
43
|
+
gemfile << <<-EOS
|
44
|
+
source #{gem_source.inspect}
|
45
|
+
gem "envandle", "#{Envandle::VERSION}"
|
46
|
+
EOS
|
47
|
+
gemfile.close
|
48
|
+
code = system(bundle_bin, "install", "--gemfile", gemfile.path, *args) ? 0 : 1
|
49
|
+
File.delete "#{gemfile.path}.lock"
|
50
|
+
exit code
|
data/lib/envandle/binding.rb
CHANGED
File without changes
|
@@ -33,6 +33,9 @@ module Envandle
|
|
33
33
|
children.each do |child|
|
34
34
|
child.exec receiver
|
35
35
|
end
|
36
|
+
references.left.each do |k, v|
|
37
|
+
v.to_executable_argset(Argset.new(nil)).send_to receiver
|
38
|
+
end
|
36
39
|
end
|
37
40
|
|
38
41
|
def dir
|
@@ -51,6 +54,10 @@ module Envandle
|
|
51
54
|
@references ||= ReferenceCache.new(self)
|
52
55
|
end
|
53
56
|
|
57
|
+
def gem_keys
|
58
|
+
@gem_keys ||= {}
|
59
|
+
end
|
60
|
+
|
54
61
|
def gemspecs
|
55
62
|
@gemspecs ||= GemspecCache.new(File.join(config_dir, "cache", "gemspecs"))
|
56
63
|
end
|
data/lib/envandle/elements.rb
CHANGED
@@ -1,10 +1,17 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
1
|
+
module Envandle
|
2
|
+
module Elements
|
3
|
+
autoload :GemBlock, "envandle/elements/gem_block"
|
4
|
+
autoload :Gem, "envandle/elements/gem"
|
5
|
+
autoload :Gemfile, "envandle/elements/gemfile"
|
6
|
+
autoload :GemspecBlock, "envandle/elements/gemspec_block"
|
7
|
+
autoload :Gemspec, "envandle/elements/gemspec"
|
8
|
+
autoload :GitSourceBlock, "envandle/elements/git_source_block"
|
9
|
+
autoload :GitSource, "envandle/elements/git_source"
|
10
|
+
autoload :GroupBlock, "envandle/elements/group_block"
|
11
|
+
autoload :Group, "envandle/elements/group"
|
12
|
+
autoload :IllegalElement, "envandle/elements/illegal_element"
|
13
|
+
autoload :SourceBlock, "envandle/elements/source_block"
|
14
|
+
autoload :Source, "envandle/elements/source"
|
15
|
+
autoload :UnsupportedElement, "envandle/elements/unsupported_element"
|
16
|
+
end
|
17
|
+
end
|
@@ -2,9 +2,8 @@ module Envandle
|
|
2
2
|
class GitBranchReference
|
3
3
|
extend AsGitReference
|
4
4
|
|
5
|
-
def initialize(context,
|
5
|
+
def initialize(context, name, url, ref)
|
6
6
|
@context = context
|
7
|
-
@group = group
|
8
7
|
@name = name
|
9
8
|
@url = url
|
10
9
|
@ref = ref
|
@@ -13,16 +12,16 @@ module Envandle
|
|
13
12
|
def spec
|
14
13
|
@spec ||= begin
|
15
14
|
cache = @context.gemfile.gemspecs
|
16
|
-
shas = Envandle.
|
17
|
-
Envandle.
|
15
|
+
shas = Envandle::GitUtil.init(nil, @url) do |dir|
|
16
|
+
Envandle::GitUtil.ls_remote_sha(dir, "refs/heads/#{@ref}")
|
18
17
|
end
|
19
18
|
sha = shas[0]
|
20
19
|
cache_url = "#{@url}##{sha}"
|
21
20
|
raise "Can't get a git commit. (url: #{@url}, branch: #{@ref})" unless sha
|
22
21
|
dir = cache.find(cache_url) || begin
|
23
22
|
reserve = cache.reserve
|
24
|
-
Envandle.
|
25
|
-
sha = Envandle.
|
23
|
+
Envandle::GitUtil.init reserve.path, @url
|
24
|
+
sha = Envandle::GitUtil.pull(reserve.path, @ref, "master")
|
26
25
|
reserve.url = cache_url
|
27
26
|
reserve.save
|
28
27
|
reserve.path
|
@@ -34,6 +33,7 @@ module Envandle
|
|
34
33
|
def to_executable_argset(base)
|
35
34
|
args = base.dup
|
36
35
|
args.clear_reference
|
36
|
+
args.args[0] = @name
|
37
37
|
args.options[:git] = @url
|
38
38
|
args.options[:branch] = @ref
|
39
39
|
Argset.new(:gem, *args.args_and_options)
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module Envandle
|
2
|
+
module GitUtil
|
3
|
+
BIN = `which git`.chomp
|
4
|
+
|
5
|
+
def self.raise_if_no_git_installed
|
6
|
+
raise "No git installed." if BIN.empty?
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.init(dir, url, &block)
|
10
|
+
unless dir
|
11
|
+
Envandle.tmpdir do |tmpdir|
|
12
|
+
init tmpdir, url, &block
|
13
|
+
end
|
14
|
+
else
|
15
|
+
raise_if_no_git_installed
|
16
|
+
Dir.chdir(dir) do
|
17
|
+
Envandle.sh "#{BIN} init"
|
18
|
+
Envandle.sh "#{BIN} remote add origin #{url}"
|
19
|
+
yield dir if block_given?
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.ls_remote_sha(dir, q)
|
25
|
+
Dir.chdir(dir) do
|
26
|
+
data = Envandle.sh("#{BIN} ls-remote origin #{q}").chomp
|
27
|
+
data = if data.empty?
|
28
|
+
[]
|
29
|
+
else
|
30
|
+
data.split("\n").map{|i| i.split(/\s+/)[0] }
|
31
|
+
end
|
32
|
+
if block_given?
|
33
|
+
yield data
|
34
|
+
else
|
35
|
+
data
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.pull(dir, ref, branch)
|
41
|
+
Dir.chdir(dir) do
|
42
|
+
Envandle.sh "#{BIN} checkout -b #{branch}"
|
43
|
+
Envandle.sh "#{BIN} pull origin #{ref}:#{branch}"
|
44
|
+
sha = Envandle.sh("#{BIN} rev-parse HEAD").chomp
|
45
|
+
if block_given?
|
46
|
+
yield sha
|
47
|
+
else
|
48
|
+
sha
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
data/lib/envandle/helper.rb
CHANGED
@@ -19,4 +19,15 @@ module Envandle
|
|
19
19
|
name
|
20
20
|
end
|
21
21
|
end
|
22
|
+
|
23
|
+
def self.sh(cmd)
|
24
|
+
output, error, status = Open3.capture3(cmd)
|
25
|
+
raise "Command error: #{cmd}" unless status.success?
|
26
|
+
output
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.tmpdir(*args, &block)
|
30
|
+
require "tmpdir"
|
31
|
+
Dir.mktmpdir *args, &block
|
32
|
+
end
|
22
33
|
end
|
@@ -2,9 +2,8 @@ module Envandle
|
|
2
2
|
class PathReference
|
3
3
|
extend AsReference
|
4
4
|
|
5
|
-
def initialize(context,
|
5
|
+
def initialize(context, name, path)
|
6
6
|
@context = context
|
7
|
-
@group = group
|
8
7
|
@name = name
|
9
8
|
@path = path
|
10
9
|
end
|
@@ -16,6 +15,7 @@ module Envandle
|
|
16
15
|
def to_executable_argset(base)
|
17
16
|
args = base.dup
|
18
17
|
args.clear_reference
|
18
|
+
args.args[0] = @name
|
19
19
|
args.options[:path] = @path
|
20
20
|
Argset.new(:gem, *args.args_and_options)
|
21
21
|
end
|
@@ -4,12 +4,11 @@ module Envandle
|
|
4
4
|
@context = context
|
5
5
|
end
|
6
6
|
|
7
|
-
def
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
git_branches[name]
|
7
|
+
def use(name)
|
8
|
+
if ref = all[name]
|
9
|
+
left.delete name
|
10
|
+
ref
|
11
|
+
end
|
13
12
|
end
|
14
13
|
|
15
14
|
def paths
|
@@ -20,23 +19,28 @@ module Envandle
|
|
20
19
|
@git_branches ||= parse(:git, GitBranchReference, "ENVANDLE_GEM_GIT_BRANCH")
|
21
20
|
end
|
22
21
|
|
22
|
+
def all
|
23
|
+
@all ||= git_branches.merge(paths)
|
24
|
+
end
|
25
|
+
|
26
|
+
def left
|
27
|
+
@left ||= all.dup
|
28
|
+
end
|
29
|
+
|
23
30
|
def parse(key, klass, env)
|
24
31
|
{}.tap do |h|
|
25
32
|
(ENV[env].to_s).split(";").each do |i|
|
26
33
|
if v = __send__("parse_#{key}", klass, env, i)
|
27
|
-
h[v.
|
34
|
+
h[v.name] = v if v
|
28
35
|
end
|
29
36
|
end
|
30
37
|
end
|
31
38
|
end
|
32
39
|
|
33
|
-
def
|
34
|
-
|
35
|
-
name
|
36
|
-
|
37
|
-
raise "No gem name (#{env}): #{ENV[env]}" if name.empty?
|
38
|
-
raise "No group name (#{env}): #{ENV[env]}" if group && group.empty?
|
39
|
-
[group, name]
|
40
|
+
def parse_name(env, v)
|
41
|
+
v = v.to_s.strip
|
42
|
+
raise "No gem name (#{env}): #{ENV[env]}" if v.empty?
|
43
|
+
v
|
40
44
|
end
|
41
45
|
|
42
46
|
def parse_path(klass, env, v)
|
@@ -46,30 +50,30 @@ module Envandle
|
|
46
50
|
name = a[0].to_s.strip
|
47
51
|
path = a[1..-1].join(":").to_s.strip
|
48
52
|
raise "No gem path (#{env}): #{ENV[env]}" if path.empty?
|
49
|
-
klass.new(@context,
|
53
|
+
klass.new(@context, parse_name(env, name), path)
|
50
54
|
end
|
51
55
|
|
52
56
|
def parse_git(klass, env, v)
|
53
57
|
v = v.to_s.strip
|
54
58
|
return if v.empty?
|
55
59
|
a = v.split(":")
|
56
|
-
name = a[0]
|
60
|
+
name = a[0]
|
57
61
|
path = a[1..-1].join(":").to_s.strip
|
58
62
|
url_and_ref = path.split('#')
|
59
63
|
url = url_and_ref[0].to_s.strip
|
60
64
|
ref = url_and_ref[1].to_s.strip
|
61
65
|
raise "No gem git url (#{env}): #{ENV[env]}" if url.empty?
|
62
66
|
raise "No gem git ref/branch/tag (#{env}): #{ENV[env]}" if ref.empty?
|
63
|
-
klass.new(@context,
|
67
|
+
klass.new(@context, parse_name(env, name), url, ref)
|
64
68
|
end
|
65
69
|
|
66
70
|
def extract_executable_argsets(base, group, name, argsets, found = {})
|
67
71
|
key = Envandle.reference_key(group, name)
|
68
72
|
return true if found.key?(key)
|
69
73
|
found[key] = true
|
70
|
-
if ref =
|
74
|
+
if ref = use(name)
|
71
75
|
ref.spec.runtime_dependencies.each do |i|
|
72
|
-
if ref2 =
|
76
|
+
if ref2 = use(i.name)
|
73
77
|
extract_executable_argsets base, nil, i.name, argsets, found
|
74
78
|
end
|
75
79
|
end
|
data/lib/envandle/version.rb
CHANGED
data/lib/envandle.rb
CHANGED
@@ -1 +1,25 @@
|
|
1
|
+
autoload :FileUtils, "fileutils" unless Object::const_defined?(:FileUtils) && !Object::autoload?(:FileUtils)
|
2
|
+
autoload :Mutex, "thread" unless Object::const_defined?(:Mutex) && !Object::autoload?(:Mutex)
|
3
|
+
autoload :Open3, "open3" unless Object::const_defined?(:Open3) && !Object::autoload?(:Open3)
|
4
|
+
autoload :YAML, "yaml" unless Object::const_defined?(:YAML) && !Object::autoload?(:YAML)
|
5
|
+
require "envandle/version"
|
6
|
+
require "envandle/exceptions"
|
7
|
+
require "envandle/helper"
|
1
8
|
require "envandle/binding"
|
9
|
+
|
10
|
+
module Envandle
|
11
|
+
autoload :Argset, "envandle/argset"
|
12
|
+
autoload :AsContext, "envandle/as_context"
|
13
|
+
autoload :AsDsl, "envandle/as_dsl"
|
14
|
+
autoload :AsGitReference, "envandle/as_git_reference"
|
15
|
+
autoload :AsReference, "envandle/as_reference"
|
16
|
+
autoload :Element, "envandle/element"
|
17
|
+
autoload :Elements, "envandle/elements"
|
18
|
+
autoload :GemspecCache, "envandle/gemspec_cache"
|
19
|
+
autoload :Gemspec, "envandle/gemspec"
|
20
|
+
autoload :GitBranchReference, "envandle/git_branch_reference"
|
21
|
+
autoload :GitUtil, "envandle/git_util"
|
22
|
+
autoload :Location, "envandle/location"
|
23
|
+
autoload :PathReference, "envandle/path_reference"
|
24
|
+
autoload :ReferenceCache, "envandle/reference_cache"
|
25
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: envandle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mosop
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-01-
|
11
|
+
date: 2017-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -54,7 +54,8 @@ dependencies:
|
|
54
54
|
version: '3.5'
|
55
55
|
description:
|
56
56
|
email:
|
57
|
-
executables:
|
57
|
+
executables:
|
58
|
+
- install-envandle
|
58
59
|
extensions: []
|
59
60
|
extra_rdoc_files: []
|
60
61
|
files:
|
@@ -67,6 +68,7 @@ files:
|
|
67
68
|
- bin/console
|
68
69
|
- bin/setup
|
69
70
|
- envandle.gemspec
|
71
|
+
- exe/install-envandle
|
70
72
|
- lib/envandle.rb
|
71
73
|
- lib/envandle/argset.rb
|
72
74
|
- lib/envandle/as_context.rb
|
@@ -74,28 +76,30 @@ files:
|
|
74
76
|
- lib/envandle/as_git_reference.rb
|
75
77
|
- lib/envandle/as_reference.rb
|
76
78
|
- lib/envandle/binding.rb
|
79
|
+
- lib/envandle/element.rb
|
77
80
|
- lib/envandle/elements.rb
|
78
|
-
- lib/envandle/elements/element.rb
|
79
81
|
- lib/envandle/elements/gem.rb
|
82
|
+
- lib/envandle/elements/gem_block.rb
|
80
83
|
- lib/envandle/elements/gemfile.rb
|
81
84
|
- lib/envandle/elements/gemspec.rb
|
85
|
+
- lib/envandle/elements/gemspec_block.rb
|
86
|
+
- lib/envandle/elements/git_source.rb
|
82
87
|
- lib/envandle/elements/git_source_block.rb
|
88
|
+
- lib/envandle/elements/group.rb
|
83
89
|
- lib/envandle/elements/group_block.rb
|
84
90
|
- lib/envandle/elements/illegal_element.rb
|
85
|
-
- lib/envandle/elements/illegals_and_unsupporteds.rb
|
86
91
|
- lib/envandle/elements/source.rb
|
92
|
+
- lib/envandle/elements/source_block.rb
|
87
93
|
- lib/envandle/elements/unsupported_element.rb
|
88
94
|
- lib/envandle/exceptions.rb
|
89
95
|
- lib/envandle/gemspec.rb
|
90
96
|
- lib/envandle/gemspec_cache.rb
|
91
|
-
- lib/envandle/git.rb
|
92
97
|
- lib/envandle/git_branch_reference.rb
|
98
|
+
- lib/envandle/git_util.rb
|
93
99
|
- lib/envandle/helper.rb
|
94
|
-
- lib/envandle/lib.rb
|
95
100
|
- lib/envandle/location.rb
|
96
101
|
- lib/envandle/path_reference.rb
|
97
102
|
- lib/envandle/reference_cache.rb
|
98
|
-
- lib/envandle/shell.rb
|
99
103
|
- lib/envandle/version.rb
|
100
104
|
homepage: https://github.com/mosop/envandle
|
101
105
|
licenses: []
|
@@ -1,31 +0,0 @@
|
|
1
|
-
module Envandle
|
2
|
-
class GemBlock < IllegalElement
|
3
|
-
def type
|
4
|
-
"gem with block"
|
5
|
-
end
|
6
|
-
end
|
7
|
-
|
8
|
-
class GemspecBlock < IllegalElement
|
9
|
-
def type
|
10
|
-
"gemspec with block"
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
class GitSource < IllegalElement
|
15
|
-
def type
|
16
|
-
"git_source without block"
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
class Group < IllegalElement
|
21
|
-
def type
|
22
|
-
"group without block"
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
class SourceBlock < UnsupportedElement
|
27
|
-
def type
|
28
|
-
"source with block"
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
data/lib/envandle/git.rb
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
module Envandle
|
2
|
-
GIT_BIN = `which git`.chomp
|
3
|
-
|
4
|
-
def self.raise_if_no_git_installed
|
5
|
-
raise "No git installed." if GIT_BIN.empty?
|
6
|
-
end
|
7
|
-
|
8
|
-
def self.git_init(dir, url, &block)
|
9
|
-
unless dir
|
10
|
-
Dir.mktmpdir do |tmpdir|
|
11
|
-
git_init tmpdir, url, &block
|
12
|
-
end
|
13
|
-
else
|
14
|
-
raise_if_no_git_installed
|
15
|
-
Dir.chdir(dir) do
|
16
|
-
sh "#{GIT_BIN} init"
|
17
|
-
sh "#{GIT_BIN} remote add origin #{url}"
|
18
|
-
yield dir if block_given?
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.git_ls_remote_sha(dir, q)
|
24
|
-
Dir.chdir(dir) do
|
25
|
-
data = sh("#{GIT_BIN} ls-remote origin #{q}").chomp
|
26
|
-
data = if data.empty?
|
27
|
-
[]
|
28
|
-
else
|
29
|
-
data.split("\n").map{|i| i.split(/\s+/)[0] }
|
30
|
-
end
|
31
|
-
if block_given?
|
32
|
-
yield data
|
33
|
-
else
|
34
|
-
data
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
def self.git_pull(dir, ref, branch)
|
40
|
-
Dir.chdir(dir) do
|
41
|
-
sh "#{GIT_BIN} checkout -b #{branch}"
|
42
|
-
sh "#{GIT_BIN} pull origin #{ref}:#{branch}"
|
43
|
-
sha = sh("#{GIT_BIN} rev-parse HEAD").chomp
|
44
|
-
if block_given?
|
45
|
-
yield sha
|
46
|
-
else
|
47
|
-
sha
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
data/lib/envandle/lib.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
require "open3"
|
2
|
-
require "thread"
|
3
|
-
require "tmpdir"
|
4
|
-
require "yaml"
|
5
|
-
require "envandle/version"
|
6
|
-
require "envandle/helper"
|
7
|
-
require "envandle/exceptions"
|
8
|
-
require "envandle/as_context"
|
9
|
-
require "envandle/as_dsl"
|
10
|
-
require "envandle/as_git_reference"
|
11
|
-
require "envandle/as_reference"
|
12
|
-
require "envandle/argset"
|
13
|
-
require "envandle/elements"
|
14
|
-
require "envandle/location"
|
15
|
-
require "envandle/gemspec"
|
16
|
-
require "envandle/gemspec_cache"
|
17
|
-
require "envandle/git"
|
18
|
-
require "envandle/git_branch_reference"
|
19
|
-
require "envandle/path_reference"
|
20
|
-
require "envandle/shell"
|
21
|
-
require "envandle/reference_cache"
|