github_cloner 0.1 → 0.2
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.
- data/README.rdoc +13 -8
- data/Rakefile +3 -3
- data/bin/github_cloner +59 -3
- data/github_cloner.gemspec +66 -0
- data/lib/github_cloner.rb +3 -2
- data/pkg/github_cloner-0.1.gem +0 -0
- data/pkg/github_cloner-0.2.gem +0 -0
- metadata +8 -5
data/README.rdoc
CHANGED
@@ -1,18 +1,23 @@
|
|
1
1
|
= github_cloner
|
2
2
|
|
3
|
-
With github_cloner you have an easy way to clone your
|
3
|
+
With github_cloner you have an easy way to clone all your projects from github.
|
4
4
|
|
5
5
|
== Usage
|
6
6
|
|
7
7
|
gem install github_cloner
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
9
|
+
Usage: github_cloner [options]
|
10
|
+
|
11
|
+
Specific options:
|
12
|
+
-u, --username GITHUB_USERNAME Require the GITHUB_USERNAME before executing your script
|
13
|
+
-p, --path [PATH] PATH to new repos collection (default: current directory)
|
14
|
+
-m, --method [METHOD] git clone [METHOD] (http, git, ssh. default: http)
|
15
|
+
-r, --repos x,y,z List of needed repos (default: all repos from your profile)
|
16
|
+
|
17
|
+
Common options:
|
18
|
+
-h, --help Show this message
|
19
|
+
|
20
|
+
$ github_cloner --username nashby --method http --path ~/Desktop/github_projects
|
16
21
|
|
17
22
|
== Contributing to github_cloner
|
18
23
|
|
data/Rakefile
CHANGED
@@ -17,11 +17,11 @@ Jeweler::Tasks.new do |gem|
|
|
17
17
|
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
18
18
|
gem.name = "github_cloner"
|
19
19
|
gem.homepage = "http://github.com/nashby/github_cloner"
|
20
|
-
gem.version = "0.
|
20
|
+
gem.version = "0.2"
|
21
21
|
gem.license = "MIT"
|
22
22
|
gem.executables = ["github_cloner"]
|
23
|
-
gem.summary = %Q{an easy way to clone your
|
24
|
-
gem.description = %Q{an easy way to clone your
|
23
|
+
gem.summary = %Q{an easy way to clone all your projects from github}
|
24
|
+
gem.description = %Q{an easy way to clone all your projects from github}
|
25
25
|
gem.email = "younash@gmail.com"
|
26
26
|
gem.authors = ["Vasiliy Ermolovich"]
|
27
27
|
end
|
data/bin/github_cloner
CHANGED
@@ -1,10 +1,66 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
3
|
+
|
4
|
+
require 'optparse'
|
5
|
+
require 'ostruct'
|
3
6
|
require 'github_cloner'
|
7
|
+
|
4
8
|
include Github
|
5
|
-
|
6
|
-
|
9
|
+
|
10
|
+
class OptionParser
|
11
|
+
def self.parse(args)
|
12
|
+
options = OpenStruct.new
|
13
|
+
options.username = nil
|
14
|
+
options.git_method = 'http'
|
15
|
+
options.path = "."
|
16
|
+
options.repos = []
|
17
|
+
|
18
|
+
opts = OptionParser.new do |opts|
|
19
|
+
opts.banner = "Usage: github_cloner [options]"
|
20
|
+
|
21
|
+
opts.separator ""
|
22
|
+
opts.separator "Specific options:"
|
23
|
+
|
24
|
+
# Mandatory argument.
|
25
|
+
opts.on("-u", "--username GITHUB_USERNAME",
|
26
|
+
"Require the GITHUB_USERNAME before executing your script") do |username|
|
27
|
+
options.username = username
|
28
|
+
end
|
29
|
+
|
30
|
+
# Optional argument
|
31
|
+
opts.on("-p", "--path [PATH]",
|
32
|
+
"PATH to new repos collection (default: current directory)") do |path|
|
33
|
+
options.path = path
|
34
|
+
end
|
35
|
+
|
36
|
+
opts.on("-m", "--method [METHOD]", ['http', 'git', 'ssh'],
|
37
|
+
"git clone [METHOD] (http, git, ssh. default: http)") do |git_method|
|
38
|
+
options.git_method = git_method
|
39
|
+
end
|
40
|
+
|
41
|
+
# List ofrepos.
|
42
|
+
opts.on("-r", "--repos x,y,z", Array, "List of needed repos (default: all)") do |repos|
|
43
|
+
options.repos = repos
|
44
|
+
end
|
45
|
+
|
46
|
+
opts.separator ""
|
47
|
+
opts.separator "Common options:"
|
48
|
+
|
49
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
50
|
+
puts opts
|
51
|
+
exit
|
52
|
+
end
|
53
|
+
end
|
54
|
+
opts.parse!(args)
|
55
|
+
options
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
options = OptionParser.parse(ARGV)
|
60
|
+
|
61
|
+
unless options.username.nil?
|
62
|
+
cloner = Github::Cloner.new options.username.to_s, options.git_method.to_s, options.path.to_s, options.repos
|
7
63
|
cloner.clone
|
8
64
|
else
|
9
|
-
puts 'Sorry, bro. I need your github name
|
65
|
+
puts 'Sorry, bro. I need to know your github name'
|
10
66
|
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{github_cloner}
|
8
|
+
s.version = "0.2"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Vasiliy Ermolovich"]
|
12
|
+
s.date = %q{2011-02-22}
|
13
|
+
s.default_executable = %q{github_cloner}
|
14
|
+
s.description = %q{an easy way to clone all your projects from github}
|
15
|
+
s.email = %q{younash@gmail.com}
|
16
|
+
s.executables = ["github_cloner"]
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"LICENSE.txt",
|
19
|
+
"README.rdoc"
|
20
|
+
]
|
21
|
+
s.files = [
|
22
|
+
"Gemfile",
|
23
|
+
"Gemfile.lock",
|
24
|
+
"LICENSE.txt",
|
25
|
+
"README.rdoc",
|
26
|
+
"Rakefile",
|
27
|
+
"bin/github_cloner",
|
28
|
+
"github_cloner.gemspec",
|
29
|
+
"lib/github_cloner.rb",
|
30
|
+
"pkg/github_cloner-0.1.gem",
|
31
|
+
"pkg/github_cloner-0.2.gem",
|
32
|
+
"test/helper.rb",
|
33
|
+
"test/test_github_cloner.rb"
|
34
|
+
]
|
35
|
+
s.homepage = %q{http://github.com/nashby/github_cloner}
|
36
|
+
s.licenses = ["MIT"]
|
37
|
+
s.require_paths = ["lib"]
|
38
|
+
s.rubygems_version = %q{1.5.0}
|
39
|
+
s.summary = %q{an easy way to clone all your projects from github}
|
40
|
+
s.test_files = [
|
41
|
+
"test/helper.rb",
|
42
|
+
"test/test_github_cloner.rb"
|
43
|
+
]
|
44
|
+
|
45
|
+
if s.respond_to? :specification_version then
|
46
|
+
s.specification_version = 3
|
47
|
+
|
48
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
49
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
50
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
51
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
52
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
53
|
+
else
|
54
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
55
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
56
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
57
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
58
|
+
end
|
59
|
+
else
|
60
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
61
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
62
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
63
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
data/lib/github_cloner.rb
CHANGED
@@ -6,10 +6,11 @@ module Github
|
|
6
6
|
|
7
7
|
GITHUB_URL_API = 'http://github.com/api/v2/json/repos/show/'
|
8
8
|
|
9
|
-
def initialize(github_uname, mode, path)
|
9
|
+
def initialize(github_uname, mode, path, repos)
|
10
10
|
@github_uname = github_uname
|
11
11
|
@mode = mode
|
12
12
|
@path = path
|
13
|
+
@repos = repos
|
13
14
|
end
|
14
15
|
|
15
16
|
def make_git_url(repo_name)
|
@@ -26,7 +27,7 @@ module Github
|
|
26
27
|
def get_gits
|
27
28
|
repos = JSON.parse(open(GITHUB_URL_API+@github_uname).read)
|
28
29
|
gits = []
|
29
|
-
repos['repositories'].each { |repo| gits << make_git_url(repo['name']) }
|
30
|
+
repos['repositories'].each { |repo| gits << make_git_url(repo['name']) if @repos.include? repo['name'] or @repos.empty? }
|
30
31
|
gits
|
31
32
|
end
|
32
33
|
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: github_cloner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: "0.
|
5
|
+
version: "0.2"
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Vasiliy Ermolovich
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-02-
|
13
|
+
date: 2011-02-22 00:00:00 +02:00
|
14
14
|
default_executable: github_cloner
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -57,7 +57,7 @@ dependencies:
|
|
57
57
|
type: :development
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: *id004
|
60
|
-
description: an easy way to clone your
|
60
|
+
description: an easy way to clone all your projects from github
|
61
61
|
email: younash@gmail.com
|
62
62
|
executables:
|
63
63
|
- github_cloner
|
@@ -73,7 +73,10 @@ files:
|
|
73
73
|
- README.rdoc
|
74
74
|
- Rakefile
|
75
75
|
- bin/github_cloner
|
76
|
+
- github_cloner.gemspec
|
76
77
|
- lib/github_cloner.rb
|
78
|
+
- pkg/github_cloner-0.1.gem
|
79
|
+
- pkg/github_cloner-0.2.gem
|
77
80
|
- test/helper.rb
|
78
81
|
- test/test_github_cloner.rb
|
79
82
|
has_rdoc: true
|
@@ -90,7 +93,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
90
93
|
requirements:
|
91
94
|
- - ">="
|
92
95
|
- !ruby/object:Gem::Version
|
93
|
-
hash: -
|
96
|
+
hash: -971290915
|
94
97
|
segments:
|
95
98
|
- 0
|
96
99
|
version: "0"
|
@@ -106,7 +109,7 @@ rubyforge_project:
|
|
106
109
|
rubygems_version: 1.5.0
|
107
110
|
signing_key:
|
108
111
|
specification_version: 3
|
109
|
-
summary: an easy way to clone your
|
112
|
+
summary: an easy way to clone all your projects from github
|
110
113
|
test_files:
|
111
114
|
- test/helper.rb
|
112
115
|
- test/test_github_cloner.rb
|