git_local 0.0.3 → 0.0.4
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 +4 -4
- data/.gitignore +0 -1
- data/Gemfile.lock +43 -0
- data/lib/git_local/repository.rb +18 -4
- data/lib/git_local/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9ef9a96b275649d0b6999c92557745d0f9379210
|
4
|
+
data.tar.gz: 4c8a19310d66ec680911d89c44817cd1bcb56cb0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e364bfcd816ff9d7717bc27fa85444db4d0f8a58dd25777fcce56a801b33e89005b91b5e17d0b36537842160d3d8bed1110dd96295015c6b890ab411c8dcd9f
|
7
|
+
data.tar.gz: dbf980ee598e33d92665506531b1830598c56abfd771cae388aacade4926b86cd6f44a9ef7f6bf8abb35392544785358e7a7df29de9384ee9e7a92a28030688d
|
data/.gitignore
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
git_local (0.0.4)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: https://rubygems.org/
|
8
|
+
specs:
|
9
|
+
coderay (1.1.1)
|
10
|
+
diff-lcs (1.3)
|
11
|
+
method_source (0.8.2)
|
12
|
+
pry (0.10.4)
|
13
|
+
coderay (~> 1.1.0)
|
14
|
+
method_source (~> 0.8.1)
|
15
|
+
slop (~> 3.4)
|
16
|
+
rake (10.5.0)
|
17
|
+
rspec (3.5.0)
|
18
|
+
rspec-core (~> 3.5.0)
|
19
|
+
rspec-expectations (~> 3.5.0)
|
20
|
+
rspec-mocks (~> 3.5.0)
|
21
|
+
rspec-core (3.5.4)
|
22
|
+
rspec-support (~> 3.5.0)
|
23
|
+
rspec-expectations (3.5.0)
|
24
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
25
|
+
rspec-support (~> 3.5.0)
|
26
|
+
rspec-mocks (3.5.0)
|
27
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
28
|
+
rspec-support (~> 3.5.0)
|
29
|
+
rspec-support (3.5.0)
|
30
|
+
slop (3.6.0)
|
31
|
+
|
32
|
+
PLATFORMS
|
33
|
+
ruby
|
34
|
+
|
35
|
+
DEPENDENCIES
|
36
|
+
bundler (~> 1.12)
|
37
|
+
git_local!
|
38
|
+
pry (~> 0.10.4)
|
39
|
+
rake (~> 10.0)
|
40
|
+
rspec (~> 3.0)
|
41
|
+
|
42
|
+
BUNDLED WITH
|
43
|
+
1.12.4
|
data/lib/git_local/repository.rb
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
module GitLocal
|
2
2
|
class Repository
|
3
3
|
class NotFound < StandardError
|
4
|
+
|
5
|
+
end
|
6
|
+
|
7
|
+
class InvalidArgument < StandardError
|
4
8
|
end
|
5
9
|
|
6
10
|
def initialize(org:, repo:, branch:, local_directory:)
|
11
|
+
check_for_special_characters(org, repo, branch, local_directory)
|
7
12
|
@org = org
|
8
13
|
@repo = repo
|
9
14
|
@branch = branch
|
@@ -48,10 +53,11 @@ module GitLocal
|
|
48
53
|
head = popened_io.read.chomp.split("\n").last
|
49
54
|
Process.wait(popened_io.pid)
|
50
55
|
|
51
|
-
popened_io = IO.popen("(cd #{path} && git remote update && git rev-parse origin/#{branch})")
|
56
|
+
popened_io = IO.popen("(cd #{path} && git remote update && git rev-parse origin/#{branch}) 2>&1")
|
57
|
+
out = popened_io.map { |line| line.chomp } || []
|
52
58
|
remote = popened_io.read.chomp
|
53
59
|
Process.wait(popened_io.pid)
|
54
|
-
raise NotFound unless $?.to_i == 0
|
60
|
+
raise NotFound.new.exception(out.join(' ')) unless $?.to_i == 0
|
55
61
|
|
56
62
|
remote != head
|
57
63
|
end
|
@@ -60,6 +66,13 @@ module GitLocal
|
|
60
66
|
@path ||= "#{local_directory}/#{org_repo_branch}"
|
61
67
|
end
|
62
68
|
|
69
|
+
def check_for_special_characters(*args)
|
70
|
+
regexp = Regexp.new(/([A-Za-z0-9\-\_\/#]+)/)
|
71
|
+
args.each do |arg|
|
72
|
+
raise InvalidArgument if arg.gsub(regexp, '').length > 0
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
63
76
|
private
|
64
77
|
|
65
78
|
attr_reader :org, :repo, :branch, :local_directory
|
@@ -67,10 +80,11 @@ module GitLocal
|
|
67
80
|
def clone_and_checkout
|
68
81
|
FileUtils.makedirs(repo_path) unless Dir.exist?(repo_path)
|
69
82
|
|
70
|
-
popened_io = IO.popen("(cd #{repo_path} && git clone git@github.com:#{org_repo}.git --branch #{branch} --single-branch #{branch} && cd #{path})")
|
83
|
+
popened_io = IO.popen("(cd #{repo_path} && git clone git@github.com:#{org_repo}.git --branch #{branch} --single-branch #{branch} && cd #{path}) 2>&1")
|
84
|
+
out = popened_io.map { |line| line.chomp } || []
|
71
85
|
Process.wait(popened_io.pid)
|
72
86
|
|
73
|
-
raise NotFound unless $?.to_i == 0
|
87
|
+
raise NotFound.new.exception(out.join(' ')) unless $?.to_i == 0
|
74
88
|
end
|
75
89
|
|
76
90
|
def org_repo
|
data/lib/git_local/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git_local
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Galvanize Product
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -76,6 +76,7 @@ files:
|
|
76
76
|
- ".gitignore"
|
77
77
|
- ".rspec"
|
78
78
|
- Gemfile
|
79
|
+
- Gemfile.lock
|
79
80
|
- LICENSE.txt
|
80
81
|
- README.md
|
81
82
|
- bin/setup
|
@@ -105,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
106
|
version: '0'
|
106
107
|
requirements: []
|
107
108
|
rubyforge_project:
|
108
|
-
rubygems_version: 2.
|
109
|
+
rubygems_version: 2.5.1
|
109
110
|
signing_key:
|
110
111
|
specification_version: 4
|
111
112
|
summary: A lightweight git command line wrapper in Ruby
|