makegit 0.0.1.pre → 0.1.0.pre

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/makegit +4 -2
  3. data/lib/makegit.rb +85 -54
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b320ef513af0f39d9aee445793458fd597896e45
4
- data.tar.gz: 192b97693c1cbe53c681f6ff4c78d41d8511ad50
3
+ metadata.gz: 9f2e0d5572fd15ff8a9f42cf1d4f6680086a1499
4
+ data.tar.gz: d58d92c0aedb7bce0c8861c6ea5b00327235ccff
5
5
  SHA512:
6
- metadata.gz: 2ea12c916ecb3b03c4b5bf21fc5a0f3c234a6f381baff972d80238b009b2ec8eef1701fa4ca370104a0f643e858590e58dd8acb0308d8bbe9f7ec39b3f2ac966
7
- data.tar.gz: 1ac16a900860e041d40774753d73fd2b1cee91d3f4912559b0b26cc78aa009b73c94bb760f04bb199ee611141bc65c7f7b94d8b486d8b72e70c76e9c865514b3
6
+ metadata.gz: 3d6eca5fd7536e7a7b10d5d57fa0a2995bfe03dd6459e3bf33d69d208ca8cfa6e7a671aecf289264e80f7f1add895d1b0b01c3cbd7c3182856b1cb92c3200399
7
+ data.tar.gz: d2b0fe8ccabb19c7979af764fefab460b1541110633ca62bef97cff45ec2e1a7c9dafb12ec25f3d3fb32858d36ca8989b92932780fa2a393853273b6047f4ae5
data/bin/makegit CHANGED
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'makegit'
3
+ require_relative '../lib/makegit'
4
+ require_relative '../config/config'
5
+ require 'json'
4
6
 
5
- Makegit.new(ARGV)
7
+ Application::Makegit.new(ARGV)
data/lib/makegit.rb CHANGED
@@ -1,65 +1,96 @@
1
- class Makegit
2
- attr_reader :project_name
1
+ module Application
2
+ class Makegit
3
+ attr_reader :project_name, :git_user, :git_token
3
4
 
4
- def initialize(argv)
5
- @project_name = get_project_name(argv)
6
- new_dir
7
- new_local_repo
8
- new_remote_repo
9
- STDOUT.puts "************** SUCCESS! ********************"
10
- STDOUT.puts "Project Created! Now \'cd #{project_name}\' and get to work."
11
- end
5
+ def initialize(argv)
6
+ @project_name = get_project_name(argv)
7
+ @git_user = get_git_user
8
+ @git_token = get_git_token
9
+ new_dir
10
+ new_local_repo
11
+ new_remote_repo
12
+ end
12
13
 
13
- def get_project_name(input)
14
- if input[0]
15
- name = input[0]
16
- else
17
- STDOUT.puts "Enter a project name:"
18
- name = STDIN.gets.strip
14
+ def get_git_user
15
+ user = `git config github.user`.strip
16
+ if user.empty? || user.nil?
17
+ STDOUT.puts "Warning: git config --global github.user not set"
18
+ STDOUT.puts "Let's set it now..."
19
+ STDOUT.puts "Please enter your GitHub username:"
20
+ user = STDIN.gets.strip
21
+ set_git_config_user(user)
22
+ end
23
+ user
19
24
  end
20
- end
21
25
 
22
- def new_dir
23
- STDOUT.puts "Creating directory: \"#{project_name}\""
24
- Dir.mkdir(project_name)
25
- STDOUT.puts "Directory created"
26
- Dir.chdir(project_name)
27
- STDOUT.puts Dir.pwd
28
- end
26
+ def get_git_token
27
+ token = `git config github.token`.strip
28
+ if token.empty? || token.nil?
29
+ STDOUT.puts "Warning: git config --global github.token not set"
30
+ STDOUT.puts "Let's set it now..."
31
+ STDOUT.puts "Visit https://help.github.com/articles/creating-an-access-token-for-command-line-use/"
32
+ STDOUT.puts "Then create a personal access token with the \"repo\" role set"
33
+ STDOUT.puts "Please enter your GitHub token:"
34
+ token = STDIN.gets.strip
35
+ set_git_config_token(token)
36
+ end
37
+ token
38
+ end
29
39
 
30
- def new_local_repo
31
- STDOUT.puts "Creating local git repository: \"#{project_name}\""
32
- system("git init")
33
- STDOUT.puts "Creating README.md"
34
- File.open("README.md", "w"){ |f| f.puts "#{project_name} by #{git_user}"}
35
- STDOUT.puts "README.md created"
36
- end
40
+ def set_git_config_user(user)
41
+ system("git config --global github.user #{user}")
42
+ end
37
43
 
38
- def new_remote_repo
39
- current_dir = File.basename(Dir.getwd)
40
- system("curl -u #{git_user}:#{git_token} https://api.github.com/user/repos -d '{\"name\":\"#{current_dir}\"}'")
41
- system("git add .")
42
- system("git commit -m \'Initial commit\'")
43
- system("git remote add origin git@github.com:#{git_user}/#{current_dir}.git")
44
- system("git push -u origin master")
45
- end
44
+ def set_git_config_token(token)
45
+ system("git config --global github.token #{token}")
46
+ end
46
47
 
47
- def git_user
48
- # Check for git username in git config
49
- # If username exists set variable
50
- # Else, throw error & prompt for username
51
- ## Sidenote: should we set variable from prompt or add to git config?
52
- `git config github.user`.strip
53
- end
48
+ def get_project_name(input)
49
+ if input[0]
50
+ name = input[0]
51
+ else
52
+ STDOUT.puts "Enter a project name:"
53
+ name = STDIN.gets.strip
54
+ end
55
+ end
54
56
 
55
- def git_token
56
- # Check for git username in git config
57
- # If username exists set variable
58
- # Else, throw error & prompt for username
59
- ## Sidenote: should we set variable from prompt or add to git config?
60
- `git config github.token`.strip
61
- end
57
+ def new_dir
58
+ STDOUT.puts "Creating directory: \"#{project_name}\""
59
+ Dir.mkdir(project_name)
60
+ STDOUT.puts "Directory created"
61
+ Dir.chdir(project_name)
62
+ STDOUT.puts Dir.pwd
63
+ end
62
64
 
63
- def run
65
+ def new_local_repo
66
+ STDOUT.puts "Creating local git repository: \"#{project_name}\""
67
+ system("git init")
68
+ STDOUT.puts "Creating README.md"
69
+ File.open("README.md", "w"){ |f| f.puts "#{project_name} by #{git_user}"}
70
+ STDOUT.puts "README.md created"
71
+ end
72
+
73
+ def new_remote_repo
74
+ current_dir = File.basename(Dir.getwd)
75
+ STDOUT.puts "Creating remote git repository"
76
+ repo_req = `curl -u #{git_user}:#{git_token} https://api.github.com/user/repos -d '{\"name\":\"#{current_dir}\"}'`
77
+ response = JSON.parse(repo_req)
78
+ if response['message'] || response['errors']
79
+ puts response['message']
80
+ response['errors'] && response['errors'].each do |err|
81
+ puts "#{err['message']}"
82
+ end
83
+ else
84
+ system("git add .")
85
+ system("git commit -m \'Initial commit\'")
86
+ system("git remote add origin git@github.com:#{git_user}/#{current_dir}.git")
87
+ system("git push -u origin master")
88
+ STDOUT.puts "************** SUCCESS! ********************"
89
+ STDOUT.puts "Project Created! Now \'cd #{response['html_url']}\' and get to work."
90
+ end
91
+ end
92
+
93
+ def run
94
+ end
64
95
  end
65
96
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: makegit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.pre
4
+ version: 0.1.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Gaddis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-25 00:00:00.000000000 Z
11
+ date: 2016-03-26 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: MakeGit is CLI Project & GitHub Repo Creator
14
14
  email: justinkgaddis@gmail.com
@@ -19,7 +19,7 @@ extra_rdoc_files: []
19
19
  files:
20
20
  - bin/makegit
21
21
  - lib/makegit.rb
22
- homepage: http://rubygems.org/gems/makegit
22
+ homepage: https://github.com/jkgaddis/makegit
23
23
  licenses:
24
24
  - Unlicense
25
25
  metadata: {}